golubdf
3051 個の遺伝子と 38 列 (2 クラス ラベル - 27 列、1 つのラベル: 0、11 列、他のラベル: 1)のデータ フレーム ( ) があります。500 回反復するループを作成する必要がありfor
ます。各反復では、データ フレームの列がシャッフルされ (クラス ラベルが混同されます)、すべての遺伝子に対して計算された 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% 値のテスト統計を取得する必要がありますが、これを機能させる方法がわかりません。