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

标签 r data.table

我正在尝试读取 >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/

相关文章:

r - 通过连接分配 data.table 行和列的子集

r - 使用 roxygen 的内联包概述文档

r - 为 ActivityType 进行 21 天滚动总和的最快方法

r - R中data.table中的快速子集化

r - 有一个特定的列表查找存在多少次

r - 如何计算插入符号中准确度和 kappa 的 95% CI

r - 将带有本地时间的向量转换为 UTC

r - 从 data.tables 绘制直方图时,maxn 不是此 j 列长度的精确倍数

r - 如何进行宽度取决于总和本身的滚动总和?

R:如何读取带有 data.table::fread 的 CSV 文件,其中逗号为小数,点为千位分隔符 ="."