首页 > 解决方案 > 映射嵌套列并计算两组之间的 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)

标签: rdplyr

解决方案


您可以使用它map来迭代每个数据并对其执行t.test

library(dplyr)
library(purrr)

df %> mutate(t_test = map(data, ~t.test(y~x, .x)))

推荐阅读