我正在通过.txt
将一个大的R
文件(> 1GB)读入fread
。我正在通过bash命令直接从.zip
存档中读取该文件:
base = fread('unzip -p Folder.zip File.txt', sep = '|', header = FALSE,
stringsAsFactors = FALSE, na.strings="", quote = "", col.names = col_namesMain)
文本文件通过|
分隔条目,以便典型的行可能如下所示:
RRX|||02020||333293||||12123
然而,在许多地方,空条目由分隔符表示,它们之间没有空格,例如, ||
在上面的示例行中。
使用fread
时,通常会完全读入这些相邻的分隔符,以便上面的行返回以下条目:
RRX, ||02020|, 333293|||, 12123
什么时候应该读作:
RRX, NA, NA, 02020, NA, 333293, NA, NA, NA, 12123
我尝试使用read.table
选项skipNul = TRUE
,这很有效。但是,skipNul
似乎没有类似于fread
的选项。如果可能的话,我更愿意使用fread
而不是read.table
,因为我有几个非常大的文件。尽管我搜索过,但我还没有对这个问题进行过多讨论。任何帮助非常感谢。
我尝试使用带有选项skipNul = TRUE的read.table,这非常有效。但是,似乎没有任何类似于skipNul的选项可用于fread。
这已于2019年4月15日在dev 1.12.3中修复(请参阅NEWS):
- fread()现在跳过嵌入的NUL(\ 0),#3400。感谢Marcus Davy举报的例子和Roy Storey的初步公关。