繁体   English   中英

将一个 csv 文件拆分为多个 txt。 文件

[英]Splitting a csv file into multiple txt. files

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

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

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

在 R 中,您可以按ID split数据并使用writeLines将其写入文本文件。

如果您的 dataframe 被称为df ,请尝试:

temp <- split(df$Text, df$ID)
Map(function(x, y) writeLines(x, paste0(y, '.txt')), temp, names(temp))

如果你有很多行,这对于并行计算来说是一个很好的任务。 这里是大前提:R 格式化文件花费了很多时间。写入磁盘不能并行完成,但格式化文件可以。)所以让我们并行执行!

furrr package 是我的最爱之一:简而言之,它为purrr package 添加了并行处理能力,其 map 功能非常有用。 在这种情况下,我们想使用future_pmap function,它允许我们将function应用于dataframe的每一行。 这应该是您需要的所有代码:

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

我在一个有 31,496 行的 dataframe 上测试了这个 function 的并行版本和普通版本,并行版本只用了 60% 的时间。 此方法也比Ronak Shah 的writeLines方法快约 20%。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM