2016-09-14 8 views
1

956,678行のデータを含むCSVファイルのデータがある。今、私はCSVファイルとしてこれらのグループを書きたいR.CSVファイルでデータを分割し、Rスライダーを使用してファイルに書き込む。

で次のコードファイルを読み込み、グループ内のデータを分割(65,000行と残りの列を有する各グループが最後のグループに行く)
my_file <- read.csv("~myfile_path/file.csv") 
grps <- (split(my_file, (seq(nrow(my_file))-1) %/% 65000)) 
for (i in grps) 
{ 
write.csv(grps, paste("path/output_file", i, ".csv", sep="")) 
} 

ディスクに書き込む。誰も私にそれをする方法を提案することはできますか?

EDIT1:コメントに基づいて

が、私は、コードを修正して、次のエラーを取得している:

Error in data.frame(`0` = list(nih_addr_id = c(664L, 665L, 666L, 667L, : 
arguments imply differing number of rows: 65000, 46677 
+1

'my_file'はすでにdata.frameです。あなたは次の声明は必要ありません。 –

+0

'split(df、sample(1:round(nrow(df)/ 65000)、65000))' 'を実行し、' split'によって生成されたリスト内の各チャンクを 'write.csv'に' for-操作。 – Abdou

+0

@Abdou:ご意見ありがとうございます。あなたが提案した分割アプローチを使用します。 「replace = FALSE」の場合、 はサンプル数を人口より大きく取ることができません " –

答えて

1

ループであなたのwrite.csvは.CSVとしてリストを書き込もうとしていますファイルではなく、リストのdataframe要素です。

試してみてください。

my_file <- read.csv("~myfile_path/file.csv") 
grps <- (split(my_file, (seq(nrow(my_file))-1) %/% 65000)) 
for (i in seq_along(grps)) { 
    write.csv(grps[[i]], paste0("path/output_file", i, ".csv")) 
} 
関連する問題