(WilcoxRankSum-Test を使用して) 1 行目と 2 行目、次に 3 行目と 4 行目などをテストしようとする data.frame があります。したがって、ループを書きました。これを複数のデータ フレームに適用する必要があるため、このループを保存し、後で他のデータ フレームに適用する関数を作成しました。ブラケットを{}
数回リセットする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