r - 'embedded nul in string' with fread(尝试了所有其他方法仍然无法解决)

标签 r vim sed data.table fread

我在 Mac 上使用 RStudio 0.99.489 和 R3.2.2。我有一个 1GB 的 csv 文件,它不是很大,但如果我尝试使用 read.csv 导入它仍然需要大约 5 分钟,而且我有很多这种大小的文件,所以我尝试了 fread() .通过阅读前面的问题,我了解到此错误可能是由于日期缺少值(对于日期列,正常条目类似于 '03May1995:15:31:50',但是,在发生错误的地方,它看起来像'05 月')。

我试过 sed 's/\\0//g' mycsv1.csv > mycsv2.csv'Embedded nul in string' error when importing csv with fread 中所述,但仍会弹出相同的错误消息。
sed -i 's/\\0//g' /src/path/mycsv.csv根本对我不起作用,终端报告此命令行的错误(我对这些命令行不是很熟悉,所以我不明白这些背后的逻辑)

我试过

file <- "file.csv"
tt <- tempfile()  # or tempfile(tmpdir="/dev/shm")
system(paste0("tr < ", file, " -d '\\000' >", tt))
fread(tt)

来自 'Embedded nul in string' when importing large CSV (8 GB) with fread() ,我猜它删除了缺少值的条目,因为当我运行时 fread(tt) R 说
Error in fread(tt) : 
  Expecting 5 cols, but line 5060627 contains text after processing all cols. It is very likely that this is due to one or more fields having embedded sep=',' and/or (unescaped) '\n' characters within unbalanced unescaped quotes.

之后,我尝试了iconv -f utf-16 -t utf-8 myfile1.csv > myfile2.csv因为这似乎是由 fread 的一些问题引起的无法理解 utf-16,这个命令行可能有问题,但它只是给了我一个带有随机符号的电子表格。

我看到了这个
vim filename.csv

:%s/CTRL+2//g

ESC  #TO SWITCH FROM INSERT MODE

:wq   # TO SAVE THE FILE

来自 Error with fread in R--embedded nul in string: '\0'但是在我输入 vim filename.csv 之后,终端只是读取了整个电子表格,我无法输入第二个命令( :%s/CTRL+2//g ),同样,我不太了解那些命令行,所以也许我需要对我的情况进行一些调整。

谢谢您的帮助!

最佳答案

尝试

sed -i 's/\x0//g' my_file

或者
cat my_file|tr -d '\000' > new_file

关于r - 'embedded nul in string' with fread(尝试了所有其他方法仍然无法解决),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34407976/

相关文章:

r - 如何打造临床环境洁净?

r - 检测 R 中的文本语言

macos - 为什么我在 OS X 上使用 vim 时没有 crontab 条目?

sed - 如何在匹配时仅使用 sed 有条件地删除第一行?

shell - 如何替换文本中的所有下划线,但 Unix Shell 中属于特定单词或模式的下划线除外

shell - 在 sed 中,我可以防止\S 匹配括号吗?

r - 如何在不同颜色的啤酒调色板中获得与散点图中的点不同的回归线?

r - 如何在 roxygen 识字编程中转义 %?

Linux 终端(Vim)无法粘贴整个代码?

ubuntu - Vim:自上次更改以来没有写入,即使我更改了文件