命令read_delim
从包装中readr
支持具有多个字符的分隔符。
我运行了一些基准测试(160 万行、30 列、350 mb txt 文件)。
我发现它比使用的解决方案快大约 40%strsplit
通过以下方式:
do.call(rbind,strsplit(readLines('test.txt'),'~~~',fixed=T))
如果你安装gawk
对于 Windows 并在 Windows 中设置适当的系统路径,您还可以执行以下操作:
fread("sed 's/|||/,/g' yourfile", sep = ',')
正如 eddi 在评论中所建议的那样。这比之前慢了大约 20%read_delim
解决方案,因为它必须通过调用写入临时文件sed
但比基本 R 解决方案更快。
最快的解决方案是将 fread 与sep = '|'
并自行删除重复的列。如果您先验地知道它们在哪里,那么这种方法效果最好,否则可以计算出来(大概需要一些不小的时间成本)。
我无法得到fread
and tstrsplit
完成我的数据集,但你可能会有更好的运气。