2017-12-21 17 views
0

私は私の質問に関して以前の答えをチェックしましたが、私の質問はもっと複雑に思えます。以下は私のループです:どのように私はループの結果をRのデータフレームに格納することができます

for(i in 2:45) 
{ 
    abs(meta1[,i]-median(meta1[,i], na.rm=T))/(mad(meta1[,i], constant 
= 1, na.rm=T)*1.483) 
} 

meta1は私のデータフレームです。私は自分のデータフレーム内の2〜45列(それぞれ数値ベクトル)のforループを適用したい。結果のベクトルを新しいデータフレームに保存します。誰かが私に方向性を教えてもらえますか?ありがとう。

+0

を作成するcbind最後に、listを初期化しlist要素に各反復における値を格納し、あなたが戻ってきているように見えます値のベクトル。 'list'すなわち' lst < - setNames(vector( 'list'、43)、2:45)を作成します。 for(i:2:45)lst [[i]] < - abs(metal [、i]、...); do.call(cbind、lst) ' – akrun

答えて

2

サンプルデータは提供していません。それはこの推測を働かせます。しかし、あなたはおそらく、このようにそれに近づくことができます:

meta2 <- meta1 
for(i in 2:45) 
{ 
    meta2[,i] <- abs(meta1[,i]-median(meta1[,i], na.rm=T))/(mad(meta1[,i], constant = 1, na.rm=T)*1.483) 
} 
+0

ありがとうございます。助けになる。 –

3

は、それがmatrix

lst <- setNames(vector('list', 43), 2:45) 
for(i in 2:45) 
{ 
lst[[i]] <- abs(meta1[,i]-median(meta1[,i], na.rm=T))/(mad(meta1[,i], 
       constant = 1, na.rm=T)*1.483) 
} 

do.call(cbind, lst) 
+1

ありがとうございます。助けになる。 –

関連する問題