我们有两个不同的数据框d1和d2,大小分别为X变量的N个观测值和Y变量的N个观测值。为了在这两个不同数据帧d1和d2
的每一列之间找到 Wilcoxon-Matt-Whitney 检验:1.读取数据:
d1 <- data.frame(read.table("data1", header = TRUE, stringsAsFactors = FALSE, sep = ""))
d2 <- data.frame(read.table("data2", header = TRUE, stringsAsFactors = FALSE, sep = ""))
假设d1中的列数大于d2中的列数
length(colnames(d1)) >= length(colnames(d2))
2.声明一个矩阵来存储 p 值
pvalue <- matrix(nrow = length(colnames(d2)), ncol = (length(colnames(d1)))
3.现在对d2$1的每一列进行 Wilcoxon-Matt-Whitney 检验,d1 $1, d1$2, d1$3, ...等等
for(i in 1:length(colnames(d2))){
for(j in 1:length(colnames(d1))){
pvalue[i,j]<-wilcox.test(d2[,i], d1[,j], paired=TRUE)$p.value
colnames(pvalue) <- colnames(d1)
rownames(pvalue) <- colnames(d2)} }
注意:如果我们想对单个数据帧执行 Wilcoxon-Matt-Whitney 测试以查找同一数据帧的一列与另一列之间的关系,此方法也可以正常工作。
d3 <- data.frame(read.table("data3", header = TRUE, stringsAsFactors = FALSE, sep = ""))
pvalue <- matrix(nrow = length(colnames(d3)), ncol = (length(colnames(d3)))
现在对d3$1的每一列进行 Wilcoxon-Matt-Whitney 检验,d3 $1, d3$2, d3$3, ...等等
for(i in 1:length(colnames(d3))){
for(j in 1:length(colnames(d3))){
pvalue[i,j]<-wilcox.test(d3[,i], d3[,j], paired=TRUE)$p.value
colnames(pvalue) <- colnames(d3)
rownames(pvalue) <- colnames(d3)} }