在R中fread data.table

时间:2013-09-20 15:43:49

标签: r data.table fread

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

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

2 个答案:

答案 0 :(得分:14)

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

fread("grep -v '^#' filename")

答案 1 :(得分:12)

目前还没有,但它已列入名单。

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

如果是这样,那就是以前出现的,解决方案是:

fread("filename", autostart=60)

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

来自?fread

  

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

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

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

  

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