2013-08-02 3 views
0

У меня есть кадр данных (golubdf) с 3051 генами и 38 столбцами (2 метки класса - 27 столбцов одна метка: 0, 11 столбцов другая метка: 1). Мне нужно написать цикл for для итерации 500 раз, где на каждой итерации столбцы кадра данных перетасовываются (смешались метки классов), тест Wilcox, рассчитанный для всех генов, и максимальная статистика теста для всех генов, сохраненных в списке :Wilcox.test in R (максимальная статистика тестов)

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% из списка максимальной статистики теста, которая была, если я не уверен, как заставить ее работать.

+3

Без примеров данных очень сложно помочь вам. Прочтите [FAQ] (http://stackoverflow.com/q/5963269/1412059), чтобы узнать, как предоставлять данные. – Roland

+0

данные, которые я использую данные golub в R, и метки классов одинаковы (все для первых 27 образцов и AML для остальной части 11) – ser2207860

+0

единственное, что я изменил, это для всех записей 3051, которые я изменил имена от g1 до g3051 ,, row.names (golubdf) = c (paste ("g", 1: 3051, sep = "")) labels <- golub.cl \t # метки классов ALL = 0; AML = 1 labelgb <- factor (c (rep ("ALL", 27), rep ("AML", 11))) – ser2207860

ответ

0

ps.max = apply (prs, 1, max) приведет к ошибке. Просто попробуйте ps.max = max (prs). Также согласно вашему требованию, вы должны сохранить свой список в списке. Сначала создайте пустой список следующим образом:

myList < -list(). Затем внутри цикла for следует вставить максимальное значение в список.

СООБЩЕНИЕ

Смежные вопросы