带有不规则分隔符的`fread`-ing文本文件

时间:2018-10-12 16:21:27

标签: r data.table

我需要读取带有不规则分隔符的大型(> 1GB)文本文件。简化的示例如下:

  

1,1,1
1,1,1
...
1,1,1,1
1,1,1
.. 。

不规则线(在上面的示例中为3个分隔符,而不是2个分隔符)可能出现在第千行之后。

read.tablefill=TRUEcol.names中的4个值一起使用。 freadfill=TRUE不能读取不规则的行。添加col.names会导致错误。

MWE:

sometext  <-  "1,1,1"
fulltext  <-  paste(rep(sometext, 150), collapse="\n")
fulltext  <-  paste0(fulltext, "\n1,1,1,1") # Irregular line
fulltext  <-  paste0(fulltext, "\n1,1,1")

# Works
mwe.readtable  <- read.table(text=fulltext,
                            sep=",",
                            col.names = paste("V", 1:4, sep=""),
                            fill=TRUE)
# Fails w/ warning
mwe.fread  <- fread(fulltext,
                   sep =  ",",
                   fill=TRUE)

# Fails w/ error
mwe.fread2  <- fread(fulltext,
                   sep =  ",",
                   col.names = paste("V", 1:4, sep=""),
                   fill=TRUE)

有没有一种方法可以防止data.table试图猜测分隔符的最大数量?

0 个答案:

没有答案