强制 fread 填充适当数量的列

loa*_*ard 6 r data.table

Freadfromdata.table包通常可以使用开关处理不规则表(在我的例子中是 SAM 文件)fill=TRUE,只需用 NA 填充“不完整”行即可。有时,如果列出现在表中较晚的位置,则无法找到正确的最大列数,如下例所示:

> body = paste0(rep("1 2\n", 1000), collapse="")
> main = paste0(body, "1 2 3\n", body, collapse="")
> fread(main, fill=T)
Warning message:
In fread(main, fill=T) :
  Stopped early on line 1001. Expected 2 fields but found 3.
  Consider fill=TRUE and comment.char=. First discarded non-empty line: <<1 2 3>>
Run Code Online (Sandbox Code Playgroud)

有没有办法强制fread使用带有选项的正确列数fill(在本例中为三列)?

目前,我只是提取列数,填充第一行(用sed),fread然后删除填充。这消除了快速加载带来的任何好处。

与这个老问题相关,预“填充”选项。