首页 > 解决方案 > 在 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

这没关系。我只是想认识到这一点,所以我可以转到下一行。

标签: r

解决方案


当grep失败时,似乎没有明确的迹象表明有答案。相反,我们需要确定答案返回 0 结果,如果是,我可以继续到文件的下一行而不用轰炸。

feat <- "hr:pos:"
inst <- ffile[i,]
feats <- strsplit(inst,"\30")
if(!length(mat <- grep(feat, feats[[1]])))
  next

这确实有利于确定mat的值(我稍后在函数中处理)。


推荐阅读