将csv文件拆分为多个txt。档案

时间:2020-06-15 03:01:39

标签: r excel

我有一个很大的csv数据集,我想将其拆分为多个txt文件。我希望每个文件的名称都来自ID列,每个文件的内容都来自文本列。我的数据看起来像这样。

ID      Text
1       I like dogs
2       My name is
3       It is sunny

任何人都可以提供建议吗?我不介意使用excel或R。 谢谢!

2 个答案:

答案 0 :(得分:3)

在R中,您可以通过split ID writeLines并使用df将其写入文本文件。

如果您的数据框名为temp <- split(df$Text, df$ID) Map(function(x, y) writeLines(x, paste0(y, '.txt')), temp, names(temp)) ,请尝试:

{{1}}

答案 1 :(得分:2)

如果您有很多行,那么这对于并行计算是一项很好的任务。 (Here's the general premise:R花费大量时间来格式化文件。无法并行写入磁盘,但是可以格式化文件。)所以让我们并行进行!

furrr软件包是我的最爱之一:简而言之,它为purrr软件包增加了并行处理功能,其映射功能非常有用。在这种情况下,我们要使用future_pmap函数,该函数使我们可以将函数应用于数据帧的每一行。这应该是您需要的所有代码:

library(furrr)
plan(multiprocess)
future_pmap(df, function(id, value) {write(value, paste0(id, ".txt"))})

我在具有31,496行的数据帧上测试了此函数的并行版本和普通版本,而并行版本仅花了60%的时间。这种方法也比Ronak Shah's writeLines method快20%。