【发布时间】:2017-01-22 08:17:57
【问题描述】:
我在 CSV 文件中有一个包含 956,678 行的数据。以下代码读取文件并在 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=""))
}
现在,我想将这些组作为 CSV 文件写入磁盘。谁能建议我怎么做?
EDIT1:
根据cmets,我修改了代码,出现如下错误:
data.frame 中的错误(
0= list(nih_addr_id = c(664L, 665L, 666L, 667L, : 参数暗示不同的行数:65000、46677
【问题讨论】:
-
my_file已经是一个 data.frame。您不需要以下语句。 -
split(df, sample(1:round(nrow(df)/65000), 65000))然后使用for-loop到write.csv由split操作生成的列表中的每个块。 -
@Abdou:感谢您的反馈。使用您建议的拆分方法。我收到以下错误:“sample.int(length(x), size, replace, prob) 中的错误:当 'replace = FALSE' 时无法获取大于总体的样本”
-
@Tensibai:我已经编辑了我迄今为止尝试过的问题。我收到错误消息。
-
@G.Grothendieck:谢谢。刚刚根据您的评论编辑了代码。
标签: r export-to-csv