';字符串中嵌入nul';使用fread()导入大型CSV(8 GB)时
我有一个很大的CSV文件(8.1 GB),我正试图将其转换成R。我使用Python的csvkit';字符串中嵌入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
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的方式。我可以运行一个类似的程序吗?除非你再也无法通过相同的过程获得此数据馈送,否则在源位置修复数据似乎是值得的:-(…但这是一个不同的问题。祝你好运!