我的数据看起来像这样
df <- data.frame(matrix(rnorm(20), nrow=10, ncol=10))
我想计算并提取所有列之间所有可能的p值 如果我想在其中两个之间做这个,我就这样做
wilcox.test(df$X1,df$X2, paired=TRUE)
它给了我
Wilcoxon signed rank test
data: df$X1 and df$X2
V = 21, p-value = 0.5566
alternative hypothesis: true location shift is not equal to 0
我希望列中所有可能对之间的V和p值
e.g。 Column1 with Column 2
Column1 with Column 3
column1 with column 4 etc etc
我想要的输出
X1-X2 : V p-value
X1-X2 : V p-value
.
.
.
答案 0 :(得分:2)
我们可以在&#39; df&#39;的combn
上使用names
指定要选择的元素数量,即m
为2,对数据集的列进行子集,应用wilcox.test
,使用列名称提取p.value
和paste
以获取预期格式
combn(names(df), 2, FUN = function(x) paste(paste(x, collapse='-'),
wilcox.test(df[,x[1]], df[,x[2]], paired = TRUE)$p.value, sep=" : "))
set.seed(24)
df <- data.frame(matrix(rnorm(10*10), nrow=10, ncol=10))