强制fread填充适当数量的列
强制fread填充适当数量的列,r,data.table,R,Data.table,Freadfromdata.table包通常可以使用fill=TRUE开关处理不规则的表(在我的例子中是SAM文件),只需用NA填充“不完整”行。有时,如果列在表中出现较晚,则无法找到正确的最大列数,如本例所示: > body = paste0(rep("1 2\n", 1000), collapse="") > main = paste0(body, "1 2 3\n", body, collapse="") > fread(main, fill=T) Warning mes
Fread
fromdata.table
包通常可以使用fill=TRUE
开关处理不规则的表(在我的例子中是SAM文件),只需用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>>
>body=paste0(rep(“12”,1000),collapse=”“)
>main=paste0(主体,“1 2 3\n”,主体,折叠=”)
>fread(干管,填料=T)
警告信息:
在fread中(主,填充=T):
在第1001行很早就停了。应为2个字段,但找到3个。
考虑填充=真和注释.char =。第一个丢弃的非空行:
有没有办法强制fread
使用fill
选项的正确列数,在本例中为三列
目前,我只提取列数,填充第一行(使用sed
),fread
,然后删除填充。这将消除快速加载带来的任何好处
与旧问题相关,请选择“填充”选项。有一些突出的错误,如您发现的错误<在这种情况下,code>fread不应失败。