我正在尝试读取一个大于4GB的csv文件,但是当我使用fread
命令时它会产生一个错误。
library(data.table)
csv1 <- fread("cleaned.csv",sep = ",",colClasses = "character",showProgress = TRUE)
错误: 字符串中嵌入了空字符:'\0'
经过一番查找,我发现可以使用sed
函数,例如在这个stackoverflow问题中提到的方法。但是我不知道如何在我的情况下使用它。请帮忙!
更新: 我尝试按照评论中描述的方法使用sed函数,但是它们会抛出一个错误。
sed无法刷新标准输出,设备上没有剩余空间
更新2: 在一些同事的帮助下,我已经解决了这个问题。然而,我仍然希望自动化这个活动,因为我必须为每个文件重复这个过程。期望的自动化方式可以从R内部或使用BASH脚本实现。有什么建议吗?
fread("sed 's/\\0//g' mycsv.csv")
呢? - Avinash Rajsed -i 's/\\0//g' /src/path/mycsv.csv
- Avinash Rajsed
似乎无法正常工作,您可能想尝试使用tr
。tr < file-with-nulls -d '\000' > file-without-nulls
- scribbles