同时对R中的整洁数据执行多个t.test

梅尔贝兹

我有一个数据集,如下所示:

id  samediff  factor  value
1   S         give    3
1   S         impact  4
2   S         give    2
2   S         impact  5   
3   D         give    1
3   D         impact  4
4   D         give    3
4   D         impact  5 

我想执行多个t检验,以比较S(samediff)条件中每个因子的均值与D(samediff)条件中相同因子的均值。

我知道我可以通过以下方式做到这一点:

dfgive<-filter(df, factor == "give")
t.test(value~samediff, dfgive)

dfimpact<-filter(df, factor == "impact")
t.test(value~samediff, dfimpact) 

有没有办法在更少的行中执行多个t.test?在实际数据集中,因素多于此处所包含的因素。我希望能够进行所有必要的t.test,而不必像上面显示的那样创建单独的数据帧。

阿克伦

我们可以通过“因素”和组summarise的输出t.testlist

library(dplyr)
out <- df %>% 
        group_by(factor) %>% 
        summarise(ttest = list(t.test(value ~ samediff)))

out
# A tibble: 2 x 2
#  factor ttest      
#  <chr>  <list>     
#1 give   <S3: htest>
#2 impact <S3: htest>

输出存储在list可以用$提取列中[[

identical(out$ttest[[1]], t.test(value ~ samediff, dfgive))
#[1] TRUE

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章