';字符串中嵌入nul';使用fread(尝试了所有其他仍然无法解决的方法)

';字符串中嵌入nul';使用fread(尝试了所有其他仍然无法解决的方法),r,vim,sed,data.table,fread,R,Vim,Sed,Data.table,Fread,我使用的是带有RStudio 0.99.489和R3.2.2的Mac。我有一个1GB的csv文件,它不是很大,但如果我尝试使用read.csv导入它,仍然需要大约5分钟,而且我有很多这样大小的文件,所以我尝试了fread()。通过阅读前面的问题,我了解到此错误可能是因为日期上缺少值(日期列的正常条目类似于'03May1995:15:31:50',但是,如果出现错误,则类似于'05May') 如中所述,我尝试了sed的//\\0//g'mycsv1.csv>mycsv2.csv,但仍然会弹出相同的

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

如中所述,我尝试了sed的//\\0//g'mycsv1.csv>mycsv2.csv,但仍然会弹出相同的错误消息

sed-i的/\\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)
在那之后,我尝试了
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
但是在我输入了
vim filename.csv
之后,终端只是读取了整个电子表格,我无法输入第二个命令(
:%s/CTRL+2//g
),同样,我不太理解这些命令行,所以可能我需要对我的情况进行一些调整

谢谢你的帮助

试试看

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


对于sed-i的/\x0//g'my_文件,终端返回:sed:1:“my_file.csv”:无效命令代码C。对于第二个,终端返回“用法:tr[-Ccsu]string1 string2 tr[-Ccu]-d string1 tr[-Ccu]-s string1 tr[-Ccu]-ds string1 string2”,并且仍然显示相同的错误消息“嵌入字符串中的nul”。这是一个csv文件,我正在使用mac,我尝试用文件路径替换“我的文件”!我已经在我存储数据的目录中了,我还需要放在路径中吗?我不知道文件是否在子目录中。你可以做的是将文件从显示窗口拖到应该放在其中的shell中
sed -i 's/\x0//g' my_file
cat my_file|tr -d '\000' > new_file