Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
';字符串中嵌入nul';使用fread()导入大型CSV(8 GB)时_R_Csv_Sed_Data.table_Fread - Fatal编程技术网

';字符串中嵌入nul';使用fread()导入大型CSV(8 GB)时

';字符串中嵌入nul';使用fread()导入大型CSV(8 GB)时,r,csv,sed,data.table,fread,R,Csv,Sed,Data.table,Fread,我有一个很大的CSV文件(8.1 GB),我正试图将其转换成R。我使用Python的csvkitin2cv,从.txt文件转换而来,创建了CSV,但不知何故,转换导致文件中出现空字符。我现在在导入时遇到此错误: fread中的错误(“file.csv”,nrows=100): 字符串中嵌入nul:“ÿþr\0e\0c\0d\0ÿ\0z\0i\0p\0c\0” 虽然我可以通过read.csv导入小块,但这是因为它允许通过fileEncoding参数进行UTF-16编码 test <- rea

我有一个很大的CSV文件(8.1 GB),我正试图将其转换成R。我使用Python的csvkit
in2cv
,从.txt文件转换而来,创建了CSV,但不知何故,转换导致文件中出现空字符。我现在在导入时遇到此错误:

fread中的错误(“file.csv”,nrows=100): 字符串中嵌入nul:“ÿþr\0e\0c\0d\0ÿ\0z\0i\0p\0c\0”

虽然我可以通过
read.csv
导入小块,但这是因为它允许通过
fileEncoding
参数进行UTF-16编码

test <- read.csv("file.csv", nrows=100, fileEncoding="UTF-16LE")

test如果你在linux/mac上,试试这个

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

file一个可能的选择是在您的计算机上安装bash emulator,并使用Linux工具删除以null结尾的字符串,如所述,例如,here:或here

我认为,由于文件被压缩,所以会出现无意义的字符。这是我在尝试读取
vcf.gz
文件时发现的
fread
似乎不支持读取压缩文件。见例


readLines()
read.table()
支持压缩文件,但速度较慢。

不幸的是,我使用的是Windows(很抱歉,我应该早点指定);但是,我确实安装了GnuWin32。这就是我以前能够使用sed的方式。我可以运行一个类似的程序吗?除非你再也无法通过相同的过程获得此数据馈送,否则在源位置修复数据似乎是值得的:-(…但这是一个不同的问题。祝你好运!