r - 映射嵌套列并计算两组之间的 t 检验
问题描述
我有一些看起来像这样的数据:
# Groups: date [4]
date data
<date> <list>
1 2021-01-31 <tibble [10 × 3]>
2 2021-02-07 <tibble [10 × 3]>
3 2021-02-14 <tibble [10 × 3]>
4 2021-02-15 <tibble [10 × 3]>
在每个嵌套data
的 中,数据如下所示:
# A tibble: 10 × 3
id y x
<dbl> <dbl> <int>
1 4 109 5
2 6 116 1
3 19 357 5
4 22 170 5
5 31 122 5
6 33 23 1
7 36 39 1
8 38 96 5
9 39 112 1
10 41 172 5
我想映射这 4 个小标题并计算 column 中的组之间的 t 检验x
。所以对于第 1 组和第 5 组。我要比较的数据在 column 中y
。
我正试图以一种整洁的方式来做到这一点。
我可以为一个小标题做到这一点:
grp1 = data$data[[1]] %>%
filter(x == 1) %>%
pull(y)
grp2 = data$data[[1]] %>%
filter(x == 5) %>%
pull(y)
t.test(grp1, grp2)
解决方案
您可以使用它map
来迭代每个数据并对其执行t.test
。
library(dplyr)
library(purrr)
df %> mutate(t_test = map(data, ~t.test(y~x, .x)))
推荐阅读
- c++ - 用 c++ 解包位域会产生错误的结果
- python - 字符串列表列表的奇怪更新
- firebase - 如何仅在使用 onUpdate 触发 Firestore 云功能更改字段时触发操作?
- node.js - 在没有 foreach 的情况下在 mongodb 中使用增量值更新
- node.js - 不能在同一个类中调用函数
- hana - 从 B1 API 运行时出现 Hana 查询错误
- flutter - Flutter:Container + ListView 可滚动
- python - 在 List Comprehension 中使用 dict.get for if elif 和 else
- php - 仅当管理员登录并为 php 中的用户禁用时,我如何启用链接
- php - Cron 作业 - 更新产品