在R中使用fread时,如何处理分隔符之间没有空格的数据

时间:2017-08-31 04:04:07

标签: r data.table fread read.table

我正在通过.txtR个大文件(> 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.tableskipNul = TRUE选项一起使用,这非常有效。但是,skipNul似乎没有类似于fread的任何选项。如果可能的话,我更愿意使用fread而不是read.table,因为我有几个非常大的文件。尽管我在寻找,但我还没有对这个问题进行过多次讨论。任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

  

我尝试将read.table与skipNul = TRUE选项一起使用,并且   完美地工作。但是,似乎没有类似的选择   跳过以获取恐惧。

此问题已在2019年4月15日的dev 1.12.3中修复(请参见NEWS):

  
      
  1. fread()现在跳过嵌入式NUL(\ 0)#3400。感谢Marcus Davy提供的示例报告,以及Roy Storey的初始PR。
  2.