我需要读取带有不规则分隔符的大型(> 1GB)文本文件。简化的示例如下:
1,1,1
1,1,1
...
1,1,1,1
1,1,1
.. 。
不规则线(在上面的示例中为3个分隔符,而不是2个分隔符)可能出现在第千行之后。
read.table
与fill=TRUE
和col.names
中的4个值一起使用。 fread
与fill=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试图猜测分隔符的最大数量?