r - 在 R 的 grep 中找不到对象
问题描述
我正在读取文件中的行,其中每行(长度为 16000 个字符)由 '\30' 分隔项目,可以有 4500 个项目。我正在寻找以功能专长“hr:pos:”开头的项目,垫子是匹配项,我将在下一个 '\30' 分隔符之前识别匹配后的字符。
feat <- "hr:pos:"
inst <- ffile[i,]
feats <- strsplit(inst,"\30")
mat <- grep(feat,feats[[1]])
虽然几乎所有行都会匹配,但有些行不匹配。这实际上是包含 22,000 个字符的行的开头(速度非常快)。我收到一条消息
a la.p.oec.2(1a).4\302(1a)\30:af:ev:\30af:ah:abstract_entity\30h:ah:abstraction\30
Error in grep(feat, feats[[1]]) : object 'feat' not found
这没关系。我只是想认识到这一点,所以我可以转到下一行。
解决方案
当grep失败时,似乎没有明确的迹象表明有答案。相反,我们需要确定答案返回 0 结果,如果是,我可以继续到文件的下一行而不用轰炸。
feat <- "hr:pos:"
inst <- ffile[i,]
feats <- strsplit(inst,"\30")
if(!length(mat <- grep(feat, feats[[1]])))
next
这确实有利于确定mat的值(我稍后在函数中处理)。
推荐阅读
- algorithm - 遍历对象 2 的值以查找它是否与对象 1 的最小变量匹配
- javascript - 计算视频播放次数的安全方法
- sql-server - 使用 CTE 而不是循环执行逻辑
- android - Android AdMob 实现 play-services 问题
- c# - 无法继承密封类的最佳解决方法?
- java - 继承的类同义词:性能?
- java - 如何使用 camel-xstream 定义自定义命名空间和标签别名
- java - 如何正确模拟 Hibernate Session get(Class
entityType, 可序列化 id) - python - 排除 ASCII 字符
- image-processing - ValueError:步幅的长度应为 1、1 或 3,但为 2