2016-11-03 20 views
0

私のデータフレームはresultです。カラム名を反復する

それは

org_A  X  Y   Z 
130  44  55  66 
312  33  62  77 
..  ..  ..  .. 

は、私がorg_AとX、およびorg_AとY、最終的にorg_AとZを比較し、そのp値を印刷するwilcox.testを使用したい、のような形式を持っています。

ので、結果はそのために

X: 0.001932 
Y: 0.18271 
Z: 0.0

のようになります、私は、このよう

for (i in 1:ncol(result)){ 
colnm <- colnames(result)[i] 
wilcox.test(result$org_A, result$colnm, alternative=c("two.sided"), paired=FALSE)$p.value 

}

を実装しますが、メッセージUnknown column 'colnm'と警告しています。

さらに悪いことに、それは何かをプリントしますが、p値は同じです。

どうすればよいですか?

+0

'result [colnm]'を試してください。 –

+0

@RomanLuštrikそれはどちらも動作しません。 –

答えて

0

これはいかがですか?

result <- data.frame(org_A = c(130, 312, 123), 
       x = c(44, 33, 12), 
       y = c(55, 62, 43), 
       z = c(66, 77, 55)) 

answer <- rep(NA, (ncol(result) - 1)) 

for (i in 2:ncol(result)) { 
     answer[i-1] <- wilcox.test(result$org_A, 
           result[, i], 
           alternative = c("two.sided"), 
           paired = FALSE)$p.value 
} 

answer 
[1] 0.1 0.1 0.1 

編集

ここsapplyを使用してのもう一つの方法です。

sapply(result[, -1], FUN = function(x, result) { 
    wilcox.test(result$org_A, 
       x, 
       alternative = c("two.sided"), 
       paired = FALSE)$p.value 
}, result = result) 
関連する問題