我在R中使用fread函数将文件读取到data.tables对象。
但是,在阅读文件时,我想跳过以#开头的行,这可能吗?我在fread文档中找不到任何提及。
答案 0 :(得分:14)
fread可以读取过滤掉这些行的管道命令,如下所示:
fread("grep -v '^#' filename")
答案 1 :(得分:12)
目前还没有,但它已列入名单。
顶部的#行是否形成超过30行的标题?
如果是这样,那就是以前出现的,解决方案是:
fread("filename", autostart=60)
其中60被选择在要读取的数据块内。
来自?fread
:
在自动启动行上找到分隔符后,列数 决心,决意,决定。然后从自动启动向后搜索文件 直到找到没有该列数的行。从而, 找到第一个数据行,任何人类可读的横幅都是 自动跳过。此功能特别有用 加载一组可能并非一直都具有一致大小的文件 横幅。设置skip> 0会通过设置覆盖此功能 autostart = skip + 1并关闭搜索向上步骤。
默认autostart=30
可能只需要在您的情况下稍微提高一点。
或者skip=n
或skip="string"
可能有帮助:
如果-1(默认值)使用下面描述的过程从行自动启动开始查找第一个数据行。 skip> = 0表示忽略自动启动,并将行skip + 1作为第一个数据行(或者根据header =“auto”|列名称| TRUE | FALSE)。 skip =“string”在文件中搜索“string”(例如列名行的子字符串)并从该行开始(受包gdata中的read.xls启发)。