r - 每种可能组合的 Wilcoxon 秩和检验

我有 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/

相关文章:

atom-editor - 原子氢 : How is "run cell" used?

java - 将 long 列表转换为 double 列表

sql - 为什么我需要在重命名之前将数据库设置为 single_user?

regex - 正则表达式 : convert a list of name and value p

docker - 在 alpine 容器中使用 confluent-kafka python 客户端

r - 交叉比较相同数据框的列

java - 使用 lambda 计算列表中的列表

azure - 在 Debian 上安装 AzureAD 模块

python-3.x - 为什么 Python 找到与 Windows 不同的文件大小?

java - 找不到属性 : Error in spring boot 的设置方法