我有一个大型数据集:每行都是一个样本,每列都是一个特征。然而,第一列填充了类因子(这里是1,2,3,4,5)。我的目标是对所有类别(所有组合1,2:1,3; 1,4; 1,5; 2,3 ......)进行wilcoxon比较。这是我为此做的代码(X是数据帧)
facs <- length(levels(factor(X[,1])))
v <- matrix(as.character(combn(facs,2)),ncol=facs*2)
vecBoh <- data.frame(row.names=paste(v[1,],"-",v[2,]))
for(i in 2:ncol(X))
{
WilF <- function(coppie) wilcox.test(X[,i] ~ Class, data=X, subset = Class %in% coppie)
vecBoh[,i-1] <- as.numeric(sapply(apply(v,2,WilF),"[",3))
}
它有效,但速度极慢。我觉得有一种更快的方法可以做到这一点。有没有人有线索?
答案 0 :(得分:0)
您可以使用pairwise.wilcox.test
功能进行群组之间的成对比较,我认为之前阅读multiple comparison可以提供帮助。
lapply(df[,-1], function(x)
pairwise.wilcox.test(x, df$Class, p.adjust.method = "none"))
df
<{1}}是data.frame