我有一个包含12,626,756行的csv文件,我需要将其拆分为更小的文件,以便同事可以在Excel中打开它们。我想创建一个循环,将文件拆分为符合Excel行数限制的文件,并将它们导出为CSV文件,直到循环结束(它应该生成13个文件)
#STEP 1: load data
data <- read.csv(".../Desktop/Data/file.csv", header = TRUE)
#STEP 2: count rows
totalrows <- nrow(data)
#STEP 3: determine how many splits you need
excelrowlimit <- 1048576 - 5
filesrequired <- ceiling(totalrows/ excelrowlimit)
字符串
例如:
csvfile 1 should contain rows 1:1048571
csvfile 2 should contain rows 1048572:2097143
csvfile 3 should contain rows 2097144:3145715
csvfile 4 should contain rows 3145716:4194287
... and so on
型
我如何编写一个循环语句,(1)根据所需文件的数量进行拆分,(2)为每个csv导出提供不同的文件名?
3条答案
按热度按时间dsekswqp1#
这里有一个解决方案,扩展了我上面的评论。这应该比任何其他解决方案具有更小的存储器需求,因为它不需要复制原始 Dataframe 的全部或部分。
字符串
brqmpdu12#
这里有一个如何实现这一点的示例,您可以使用
split_at
设置所需的文件大小。在最后一部分中,你当然可以根据需要修改write_csv参数,例如:以设置路径、分隔符等。
字符串
ekqde3dh3#
我假设每隔500行拆分数据。你可以将一列变异为lable group。然后放入for循环,根据这一列写出csv。
字符串