我有一个数据框 ( golubdf
),其中包含 3051 个基因和 38 列(2 个类别标签--27 列一个标签:0,11 列其他标签:1)。我需要编写一个for
循环来迭代 500 次,其中在每次迭代中,数据框的列被打乱(类标签混合),计算所有基因的 Wilcox 检验和保存在列表中的所有基因的最大检验统计量:
t.test.all.genes <- function(x,s1,s2) {
x1 <- x[s1]
x2 <- x[s2]
x1 <- as.numeric(x1)
x2 <- as.numeric(x2)
t.out <- wilcox.test(x1,x2, alternative="two.sided", exact=F, correct=T)
out <- as.numeric(t.out$statistic)
return(out)
}
prs = replicate(500, apply(golubdf[ ,sample(ncol(golubdf))], 1,
t.test.all.genes, s1=labels==0, s2=labels==1))
ps.max = apply(prs, 1, max)
我不确定这是否正确——我需要使用行还是列?因为我需要所有基因的最大测试统计数据,所以我使用了行 (1)。在此之后,我需要从最大测试统计列表中获取 95% 的值测试统计,我不知道如何让它工作。