我有 5 个值总体,我想在所有可能的组合中运行 Wilcoxon 秩和检验。
运行测试后,我想将 p 值存储在矩阵中。我是 还附加了数据集。
Population1 Population2 Population3 Population4 Population5
3.09 3.51349697 3.164190018 3.518407469 3.620480389
2.575 3.635713772 3.856745405 3.795780041 3.47405986
4.045 4.345129949 3.723526111 4.033668309 3.799417462
4.05 4.228530049 3.782229842 3.90679146 3.781252404
2.36 3.656315008 3.590211196 3.204999548 3.333981072
3.265 4.190930929 3.712583274 3.927421494 3.597604196
3.86 4.34070563 3.860239538 4.047323965 3.765763075
3.715 3.932171123 3.575872952 3.360518373 3.362403803
3.155 3.743746825 3.87061761 3.722034198 3.716139828
我写了一段代码,但它只返回最后一列
x=read.csv("Book1.csv")
pvalue<-matrix(nrow=5, ncol=5)
for(i in 1:length(x)){
for(j in 1:length(x)){
pvalue[i*j]<-wilcox.test(x[,i], x[,j], paired=TRUE)$p.value
colnames(pvalue) <- colnames(x)
rownames(pvalue)<- colnames(x)
}
}
我想要这种格式的输出
在此先感谢您的帮助。
最佳答案
您可以使用 pairwise.wilcox.test,它会准确返回您想要的矩阵,并进行多重比较校正。
library('MASS')
X <- mvrnorm(100,1:5, diag(5))
pairwise.wilcox.test(t(X), g = seq(1,5), p.adjust.method = 'BH')
g 是定义组的一个因素,因此在转置之后,您的第一行是第 1 组,第二行是第 2 组,依此类推。
https://stackoverflow.com/questions/43654787/