在R中记录data.table

Dna*_*iel 13 r fread data.table

我在R中使用fread函数将文件读取到data.tables对象.

但是,在阅读文件时,我想跳过以#开头的行,这可能吗?我在fread文档中找不到任何提及.

mal*_*ook 14

fread可以读取过滤掉这些行的管道命令,如下所示:

fread("grep -v '^#' filename")
Run Code Online (Sandbox Code Playgroud)


Mat*_*wle 12

目前还没有,但它已列入清单.

顶部的#行是否形成超过30行的标题?

如果是这样,那就出现了,解决方案是:

fread("filename", autostart=60)
Run Code Online (Sandbox Code Playgroud)

其中60被选择在要读取的数据块内.

来自?fread:

在线路自动启动上找到分隔符后,将确定列数.然后从自动启动向后搜索文件,直到找到没有该列数的行.因此,找到第一个数据行,并自动跳过任何人类可读的横幅.此功能对于加载一组可能并非全部具有一致大小横幅的文件特别有用.设置skip> 0会通过设置autostart = skip + 1并关闭搜索向上步骤来覆盖此功能.

autostart=30在您的情况下,默认可能只需要稍微提高一点.

或者可能skip=nskip="string"帮助:

如果-1(默认值)使用下面描述的过程从行自动启动开始查找第一个数据行.skip> = 0表示忽略自动启动并将行跳过+ 1作为第一个数据行(或者根据header ="auto"|列名称| TRUE | FALSE).skip ="string"在文件中搜索"string"(例如列名行的子字符串)并从该行开始(受包gdata中的read.xls启发).