我有一个2000行的数据框。我只希望一次将99行保存到一个csv文件中。
是否可以使用数据帧的99个连续行写入多个csv文件,即1980行的99个行的20个文件,以及包含20行的最终csv文件?此外,鉴于创建的文件数量,是否可以在文件名输出中添加_1,_2,_3等。以确保轻松定义它们?
答案 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" ) )
}