2015-10-10 45 views
0

我有一個包含2列名稱和email的150萬行csv文件。我想以這樣的方式編寫程序,當我在R中讀取我的文件時,輸出被分段每個csv有5000個數據。在一個循環中寫入多個CSV文件

也許我可以做一個循環:從第1行到5000並將其保存爲project1.csv,然後將5001保存爲10000,然後保存到project2.csv,然後將10001保存到15000在我的工作目錄中的project3.csv中。有什麼建議麼?

回答

1

假設「DF1」是我們需要部分每5000行,並將其保存在一個新的文件data.frame,我們通過創建基於行的listlst)序列的分組指標split的數據集。我們遍歷list元素的序列(lapply(...),並用write.csv寫入新文件。

n <- 5000 
lst <- split(df1, ((seq_len(nrow(df1)))-1)%/%n+1L) 
invisible(lapply(seq_along(lst), function(i) 
    write.csv(lst[[i]], file=paste0('project', i, '.csv'), row.names=FALSE))) 
+0

感謝和真棒及其工作...ü救了我幾乎每天 – Sandy2511

+0

如果我有7列,而不是2 – Sandy2511

+0

@ Sandy2511它應該是相同的代碼作爲分割依賴於行,而不是列。 – akrun