0
と同じである1行のデータフレームを作成します。すべての列は、私はしばしばこのようなコードを記述し、既存の変数
answer.df = data.frame(x = numeric(0), y = numeric(0), z = numeric(0))
for (i in 1:100) {
x = do_stuff(i)
y = do_more_stuff(i)
z = yet_more_stuff(i)
# Is there a better way of doing this:
temp.df = data.frame(x = x, y = y, z = z)
answer.df = rbind(answer.df, temp.df)
}
私の質問は、ラインtemp.df = data.frame(x = x, y = y, z = z)
、でやっての滑らかな印象方法があるさをこの?私の問題を理解するには、10個以上の変数があると想像してください。
が直接あなたの問題を答えていない、しかし、aは(ほとんど常に)、多くの場合があります:
また、いくつかのパフォーマンス上の利点を有していてもよいdata.tableから
rbindlist
を試してみてください'for'ループの中で' rbind'-ingよりdata.frameを作成する良い方法 – SymbolixAUもっと* how *?同じ名前を 'data.frame(x、y、z)'だけすることができれば、データフレームに引数を指定する必要はありません。 x、y、zが別々の変数ではなくリストにあれば、おそらく 'as.data.frame'だけを使うことができます。しかし、その行は本当にうまく見えます。それはひどく見える 'rbind'行です:そのようなループ内のオブジェクトを成長させることは[R Infernoの地獄の第二の円]です(http://www.burns-stat.com/pages/Tutor/R_inferno.pdf) 。あなたの 'answer.df'をあらかじめ割り当ててそれに直接挿入するか、リスト内のベクトルを保持し、最後に一度データフレームにします。 – Gregor
@SymbolixAU私はちょうど学びます。赤ちゃんのステップ。 – lebelinoz