【发布时间】:2014-10-25 15:12:10
【问题描述】:
我需要找出将 CSV 或文本文件中的符号、字母和数字的精确模式组合与非常非结构化的数据集进行匹配的最佳方法。
我需要准确地提取模式“BR1*********”(BR1 + 正好 9 位),它位于行 :61: 的中间,以及模式“?54***”(?54 + 正好 3数字),它总是在行的末尾:61:。
这两种模式都是重复的,但数字组合不同。
到目前为止,我已经尝试过 grep 和 grepl 没有成功。结果,我总是收到整行,其中该模式近似匹配,但符号和数字不完全匹配。
以下是数据集的一小部分:
:11:hgttu6576575?//80&&80980jhkhkhlkhkh gjdggfjsdf?kjhkuhsfk778798978**&
:27:jhkjhuiy867tjhfsh/.>?kjklh8ggdhkotrdkhofkhodkgj
:61:kjljlkfjsdlBR1678899458iyuyugug7787?>?///uhhiuyi
jhkhkjhiy878697y8hukjlu97 ??///khiuy8oujhuhijk?54160
:11:hgggdgf79878yiuhlkhkh gjdggfhuihiuhuiou89 ioiojsdf?kjhkuhsfk778798978**&
:27:jhkjhuiy867tjhfsh/.>?kjklh8ggdhkotrdkhofkhodkgj
:61:kjljlkfjsdlBR1234885765iyuyugug7787?>?///uhhiuyi
jhkhkjhiy878697y8hukjlu97 ??///khiuy8oujhuhijk?54190
【问题讨论】:
-
你能显示
dput(head(lines))吗?此外,您能否检查该解决方案是否适用于较小的数据集子集? IE。lines1 <- head(lines,20) -
嗨@akrun,感谢您提出这个问题。问题是它是一个包含数千行/行的巨大文件(File.txt),我无法使用行
-
我不是在谈论发布完整文件。您可以使用
lines <- readLines("file.txt")读取文件,然后使用dput(head(lines))发布前几行。还让您在数据集的子集上运行代码。