我正在尝试读取 >4GB 的 csv 文件,但是,当我使用 fread
命令时,它会产生错误
library(data.table)
csv1 <- fread("cleaned.csv",sep = ",",colClasses = "character",showProgress = TRUE)
错误: 在字符串中嵌入 nul:'\0'
经过一番查找,我发现你可以使用 sed
函数
比如这个stackoverflow Question但我不知道如何在我的场景中使用它。请帮忙!
更新: 我尝试使用下面评论中所述的 sed 函数,但是,它们抛出了错误。
sed 无法刷新标准输出,设备上没有剩余空间
更新2: 我在一些同事的帮助下解决了这个问题。但是,我仍然希望自动化此事件,因为我必须对每个文件重复该过程。预期的自动化要么来自 R 内部,要么使用 BASH 脚本。有什么建议吗?
最佳答案
csv 文件填充了 ^@ 并将它们放置在空白值内,不知何故无法通过 sed 命令
搜索或替换它们来解决问题,我遵循了以下解决方案。
在linux中,跟随文件目录并使用vim命令,例如,
vim 文件名.csv
:%s/CTRL+2//g
ESC#从插入模式切换
:wq # 保存文件
我必须为每个文件手动执行此操作。但是,我仍在寻找一种在 R 中或使用 BASH 脚本自动执行此操作的方法。
关于r - R 中的 fread 错误 - 字符串 : '\0' 中嵌入 nul,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31701365/