【发布时间】:2020-10-26 15:59:14
【问题描述】:
我有一个(大)数据集,如下所示:-
dat <- data.frame(m=c(rep("a",4),rep("b",3),rep("c",2)),
n1 =round(rnorm(mean = 20,sd = 10,n = 9)))
g <- rnorm(20,10,5)
dat
m n1
1 a 15.132
2 a 17.723
3 a 3.958
4 a 19.239
5 b 11.417
6 b 12.583
7 b 32.946
8 c 11.970
9 c 26.447
我想用vectorg like对“m”的每个类别进行t检验
n1.a <- c(15.132,17.723,3.958,19.329)
我需要做一个像t.test(n1.a,g)这样的t检验
我最初考虑使用split(dat,dat$m) 和
然后使用lapply,但它不起作用。
有什么想法吗?
【问题讨论】:
-
为什么不工作?
-
列表的每个元素都是一个类似列表的数据框,我无法从中提取“n1”值
-
rep(c("a", "b", "c"), 4:2) -
@Edward ,使用单独的向量进行 t 检验
-
lapply(split(dat, dat$m), function(x) t.test(x$n1))你在找什么吗?