如何应用wilcox.test来比较表的每一列

时间:2015-11-17 16:38:23

标签: r

我在r中有一个名为tbl的数据表。 我想执行wilcox测试,将每列与表中的每一列进行比较,并将p值存储在新的表或矩阵中。

要比较一对列(在这种情况下为1和2),我通常会这样做:

wilcox.test(tbl[,1],tbl[,2],alternative="t",paired=FALSE)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

一种方法是存储tbl的双向组合,然后使用lapply来计算p.values。像这样:

#example data.frame
df <- data.frame(a = runif(10), b= runif(10), c=runif(10))

#calculate combinations of names
combinations <- as.data.frame(combn(names(df), 2), stringsAsFactors=FALSE)

#use the above combinations and calculate the wilcox.test to get the p.values
lapply(combinations, function(x) {
  wilcox.test(df[,x[1]] , df[, x[2]], alternative="t", paired=FALSE)$p.value
})

输出:

$V1
[1] 0.8534283

$V2
[1] 0.2175626

$V3
[1] 0.3526814