私はこのようなタイプのdata.frameのオブジェクトを持っていますが、はるかに大きな:R:data.frame(または他のデータ構造)での高速乗算選択した行
> head(mydf)
id1 id2 n
1 0 1032142 3
2 0 1072163 1
3 0 119323 2
私は、ファイルの列に印刷する必要がありますa1
およびa1
であり、それぞれn
回である。私はそのようなファイルを取得することができるように:
0 1032142
0 1032142
0 1032142
0 1072163
0 119323
0 119323
を(...それは私のデータとそれらを完了するために数日かかる)私は、次の解決方法を試してみましたが、彼らは、明示的なfor
ループを利用し、信じられないほど遅いです:
for (j in 1:(nrow(mydf))) for (i in 1:(mydf[j,"n"])) write.table(mydf[j,c("id1","id2")], file="trials", append=T, row.names= F, col.names=F)
他の人は、乗算された行で新しいdata.frameを構築しようとしますが、実行するのがさらに遅くなります。
Rの下でこれを解決する最も単純かつ迅速な方法は何ですか?
私は 'シンク'はコンソール出力をファイルに出力するためのものだと思います。この場合、データフレームをファイルに書き込む 'write.table'がすでにあります。 –
したがってcatの使用。私は疑問に思っていますが、write.table(...、append = T)よりも速く沈むでしょう。 –