У меня есть data.frame, который я пытаюсь проверить (с помощью WilcoxRankSum-Test) 1-й и 2-й строки, затем 3-й и 4-й строки и так далее. Поэтому я написал цикл. Поскольку я должен применить это к нескольким кадрам данных, я создал функцию для хранения этого цикла и позже применил его к другим. Я попытался сбросить скобки {}
несколько раз или заменить pval[i]
на sapply, как рекомендовано в нескольких других потоках.Не удалось сохранить результаты цикла
По-моему, петли прекрасно работают. Но цикл не может получить доступ к pval
. Извините, что беспокою вас об общей проблеме. Я недавно самоучка (все из нитей;)). Но я не могу найти проблему. Если вы видите ярлыки, чтобы облегчить жизнь, Я действительно был бы рад любым комментариям.
Вот мой код:
ZP <- function(data){
library(exactRankTests)
pval <- vector(length=nrow(data))
k <- seq(1,nrow(data)-1, by=2)
for (i in seq_along(k)) {
pval[i] <- wilcox.exact(as.numeric(data[k[i],6:10]),
as.numeric(data[k[i]+1,6:10]),
alternative = "greater", conf.level=0.95)$p.value
return(pval)
}
}
Вот результат:
ZP(realdata)
[1] 0.8492063 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[9] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[17] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[25] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
Я хочу, чтобы это выглядело, как это, так что я могу cbind его данным позже:
ZP(realdata)
[1] "pval" "0" "pval" "0" "pval" "0" "pval" "0" "pval" "0" "pval"
[12] "0" "pval" "0" "pval" "0" "pval" "0" "pval" "0" "pval" "0"
[23] "pval" "0" "pval" "0" "pval" "0" "pval" "0" "pval" "0"
Мои данные выглядят:
Proband Lauf Interleukin Ansatz Zeitpunkt Data1 Data2 Data3 Data4 Data5
1 1 1 IFNy stim ZP0 7 2 3 3 7
2 1 1 IFNy neg ZP0 3 2 0 2 1
Ваша функция, кажется, ничего не возвращает: вы, вероятно, хотите, чтобы ее последняя строка была 'pval' или' return (pval) '. –
Кроме того, ваши фигурные скобки неуместны, потому что вы храните их в 'pval [[i]]' вне вашего 'for'-loop. – Thomas
Я хочу, чтобы результаты возвращались в вектор length = nrow (data), поэтому я могу привязать его позже к данным. – newbymedicalstats