【发布时间】:2016-01-17 19:32:07
【问题描述】:
任何包中是否有任何函数可以使用正则表达式读取文本文件并返回找到的匹配项的字符串数。就像 gsubfn read.pattern 可以找到并提取模式但不能返回行号和 grep 不能直接读取文件。示例:
文件:
.122448110000D+06 .400000000000D+01
3 15 3 23 10 0 0.0 .267305411398D-03 .161435309564D-10 .000000000000D+01
.510000000000D+02 .625000000000D-01 .440982654411D-08 .306376855997D+00
5 15 3 23 11 59 44.0 -.263226218521D-03 .488853402202D-11 .000000000000D+01
模式:reg="^ *\\d+ +(?:[0-9]+ +){5}[.0-9]+.*$" 用于第 2 行和第 4 行匹配。所以我一般想要的是:
>file.grep(file,reg)
[1] 2 4
有什么东西吗?在处理此类事情时,我的一般理念是readLines,然后使用grep 发挥创意,当文件不是那么大时这很好。但是我在这里读到很多人对大型而不是表结构的数据集有问题,这些问题可以用这种工具(或readLines支持正则表达式skip参数)解决,我想知道是否有人做过类似的事情。
【问题讨论】: