2016-03-19 14 views
0

私は適用関数からp値のみを抽出したいと思います。いくつかの列(A〜D)にわたっていくつかの統計的テスト(shapiro-test、kruskal-VallisおよびANOVA)を行いました。それは自動で動作しますが、私は常に結果として全体のリストを取得します。p.value適用関数からの抽出

私のdata.frameはcalles data1です。

B < -apply(DATA1 [C( "A"、 "B"、 "C"、 "D")]、2、shapiro.test);

bは私は$ pを追加した場合。値または$ p.valを結果に "NULL"( "ゼロ")と表示された関数に追加します。

B < -apply(DATA1 [C( "A"、 "B"、 "C"、 "D")]、2、shapiro.test)の$ p.val

bは$ p.val NULL

この問題で誰かを助けることができますか?

+1

「データ1」のコードを再現性よく作成してください。 – mtoto

+0

data1は、いくつかのパラメータ(窒素、リン酸塩、炭素、私は "A"、 "B"、 "C"などと呼ばれています)のための行の土壌管理からの50の観測値を持つ表です。私はすべての列にテストを適用し、結果としてp値のみを生成したいと思います。つまり、ベクトルまたはリストの各列のp値。 –

+0

[ask]と[再現可能な例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)の作成方法についてお読みください。 – Heroka

答えて

1

S.R、あなたがshapiro.testオブジェクトのリストを取得しますapply

。 data.frameには、このリストから値を抽出するために、あなたはできます

b<-apply(data1[,c("A", "B","C","D")],2,shapiro.test) 
do.call(rbind,lapply(b,function(v){v$p.value})) 

これは、あなたの行ごとに1 p.valueとdata.frameを与えるだろう。再現性の例を構築するためにmtcarsを使用し

b<-apply(mtcars[,c("disp","hp","drat","wt","qsec")],2,shapiro.test) 
do.call(rbind,lapply(b,function(v){v$p.value})) 

p.value値のdata.frameを生成します。

  [,1] 
disp 0.02080657 
hp 0.04880824 
drat 0.11006076 
wt 0.09265499 
qsec 0.59351765 
関連する問題