R中的Wilcox.test(最大测试统计)

时间:2013-08-02 18:40:54

标签: r for-loop

我有一个数据框(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%值测试统计信息,这是我不知道如何使其工作。

1 个答案:

答案 0 :(得分:0)

ps.max = apply(prs,1,max)行会导致错误。试试ps.max = max(prs)。另外,根据您的要求,您必须将您的输出保存在列表中。首先创建一个空列表,如下所示:

myList中&LT; -list()。然后在for循环中继续将最大值插入列表。

由于