0

R.csvのループの出力としてfor(変数の変更に基づいて)作成された一連のファイルがあります。各ファイルには名前が付けられています。ここで、はforループで使用される名前です。各ファイルには3つの列がありますが、行のサイズは異なります。さまざまな列をすべて含む単一のcsvファイルを作成したいと思います。STOCKNAMEcsvXXXX.csvXXXXcsv

if csv files 1 is like C1 C2 
and 
csv file 2 is C3 C4 

最終的な出力を。のようなcsvファイルにしますC1 C2 C3 C4

前もって感謝します

4

1 に答える 1

0

ファイルが大きすぎない場合、つまりメモリに簡単に収まる場合は、cbind と lapply を組み合わせて使用​​して、write.csv を使用して保存できる 1 つの大きな data.frame を作成できます。それは次のようになります。

fnames = list.files()
big_list = lapply(fnames, read.csv)
big_data = do.call("cbind", big_list)
write.csv(big_data, file = "big.csv")

行数が異なるという問題を解決するには、行の長さが等しくなるまで NA を追加します。個々のファイルを 1 つの大きなオブジェクトにマージする前に、これを行う必要があります。最大のオブジェクト、つまりほとんどの行を見つけるには、次のようなものを使用します。

max_nrow = max(sapply(big_list, nrow))
于 2012-09-18T13:36:53.837 に答える