我有一个数据集,如下所示:
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.test
在list
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] 删除。
我来说两句