fread - 跳过以特定字符开头的行 - “#”
Posted
技术标签:
【中文标题】fread - 跳过以特定字符开头的行 - “#”【英文标题】:fread - skip lines starting with certain character - "#" 【发布时间】:2013-09-26 01:52:51 【问题描述】:我正在使用 R 中的 fread 函数将文件读取到 data.tables 对象中。
但是,在阅读文件时,我想跳过以 # 开头的行,这可能吗?
我在文档中找不到任何提及。
【问题讨论】:
相关GitHub Issue 856. 【参考方案1】:fread 可以从过滤掉此类行的管道命令中读取,如下所示:
fread("grep -v '^#' filename")
【讨论】:
【参考方案2】:目前没有,但它在清单上。
顶部的 # 行是否构成超过 30 行长的标题?
如果是这样,那是以前提出的,解决方案是:
fread("filename", autostart=60)
其中 60 被选为要读取的数据块内。
来自?fread
:
一旦在行自动启动上找到分隔符,列数 决心,决意,决定。然后从自动启动向后搜索文件 直到找到没有该列数的行。因此, 找到第一个数据行,并且任何人类可读的横幅都是 自动跳过。此功能对于 加载一组可能并非全部大小一致的文件 横幅。设置 skip>0 通过设置覆盖此功能 autostart=skip+1 并关闭向上搜索。
默认的autostart=30
在你的情况下可能只需要增加一点。
或者skip=n
或skip="string"
有帮助:
如果为 -1(默认),则使用下面描述的过程从在线自动启动开始查找第一个数据行。 skip>=0 表示忽略自动启动并将 line skip+1 作为第一个数据行(或根据 header="auto"|TRUE|FALSE 的列名称照常)。 skip="string" 在文件中搜索“string”(例如,列名行的子字符串)并从该行开始(受 gdata 包中的 read.xls 启发)。
【讨论】:
非常感谢,这有帮助。它们可能在文件中的任何地方,这有点奇怪,但我可能只是对其进行预处理,然后将其放入 R... @Dnaiel 这确实很奇怪。文件格式是特定领域常用的吗?如果互联网上某处有示例文件? 谢谢,它似乎不适用于我的文件,因为它也有不规则数量的列。 ***.com/questions/18597488/fill-option-for-fread @Dnaiel 是的。我从来不知道这样的文件存在。您如何看待sep2
的想法?
对我来说听起来不错。我现在所做的只是摆脱那些额外的列,所以我现在很好。以上是关于fread - 跳过以特定字符开头的行 - “#”的主要内容,如果未能解决你的问题,请参考以下文章
如何避免以特定符号开头的行中字符串的文本突出显示[java]