R中的fread错误 - 在字符串中嵌入nul:'\ 0'

Sho*_*anz 11 r data.table

我试图读取一个> 4GB的csv文件,但是,当我使用fread命令它产生和错误

library(data.table)
csv1 <- fread("cleaned.csv",sep = ",",colClasses = "character",showProgress = TRUE)
Run Code Online (Sandbox Code Playgroud)

错误: embedded nul in string: '\0'

经过一番看,我发现你可以使用sed这个函数,例如在这个stackoverflow问题 但是我不知道如何在我的场景中使用它.请帮忙!

更新: 我试图在注释中使用sed函数,但是,它们会抛出错误.

sed couldn't flush stdout no space left on device

更新2: 我已经在一些同事的帮助下解决了这个问题.但是,我仍然希望自动执行此活动,因为我必须为每个文件重复此过程.预期的自动化将来自R内或使用BASH脚本.有什么建议?

Sho*_*anz 4

csv 文件填充了^@并将它们放置在空白值内,不知何故无法通过搜索或替换它们sed commands来解决问题,我遵循以下解决方案。

在 Linux 中,跟随文件目录并使用 vim 命令,例如,

vim filename.csv

:%s/CTRL+2//g

ESC #TO SWITCH FROM INSERT MODE

:wq # TO SAVE THE FILE

我必须为每个文件手动执行此操作。但是,我仍在寻找一种在 R 中或使用 BASH 脚本自动执行此操作的方法。

  • Vim 脚本(gvim、vim)可以很容易地适应 `vi -s edit.vim filename.txt`,其中 edit.vim 包含(:wq 是可选的)`:%s/CTRL+2//g :wq`您还可以使用`:argdo`命令对参数中的所有文件运行命令。 (2认同)