我有以下两个数据框
df1 <- as.data.frame(matrix(runif(50), nrow = 10, byrow = TRUE))
colnames(df1) <- c("x1", "x2", "x3", "x4", "x5")
df2 <- as.data.frame(matrix(runif(100), nrow = 20, byrow = TRUE))
colnames(df2) <- c("x1", "x2", "x3", "x4", "x5")
我想测试2个dfs的x_j列的平均值是否相同,对于j = 1,...,5,记录测试统计量和p值。
t.test(df1$x1, df2$x1)$statistic
t.test(df1$x1, df2$x1)$p.value
apply()似乎只接受一个df作为输入?在j上循环以上两行的最佳方法是什么?
提前致谢!
apply
,lapply
,vapply
和sapply
所有遍历单个对象。如果你有m
ultiple,你想mapply
或Map
:
mapply(function(x,y) t.test(x,y)[c("statistic","p.value")], df1, df2)
# x1 x2 x3 x4 x5
#statistic 0.6816886 -1.408304 -0.2598513 -0.890468 -1.097354
#p.value 0.5028386 0.1721202 0.7982655 0.3825847 0.2851621
这假定两者df1
并且df2
以相同的列顺序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句