为大型数据框写入具有指定行数的多个csv文件

时间:2019-11-06 11:01:31

标签: r dataframe

我有一个2000行的数据框。我只希望一次将99行保存到一个csv文件中。

是否可以使用数据帧的99个连续行写入多个csv文件,即1980行的99个行的20个文件,以及包含20行的最终csv文件?

此外,鉴于创建的文件数量,是否可以在文件名输出中添加_1,_2,_3等。以确保轻松定义它们?

1 个答案:

答案 0 :(得分:1)

这应该有效

library( data.table )
#create sample data    
dt = data.table( 1:2000 )
#split dt into a list, based on (f = ) the integer division (+ 1) of the 'rownumbers' 
# by the preferred chuncksize  (99)
# use keep.by = TRUE to keep the integer division (+ 1) result 
# for naming the files when saving
l <- split( dt, f = dt[, .I] %/% 99 + 1, keep.by = TRUE )
#simple for loop, writing each list element, using it's name in the filename
for (i in 1:length(l)) {
  write.csv( data.frame( l[[i]]), file = paste0( "./testfile_", names(l[i]), ".csv" ) )
}

结果
enter image description here