1

我试图了解 R 如何处理字符串操作和比较。

为此,我设置了两个数据框,一个是我的原始数据,另一个是我想要比较的参考数据。我试图了解比较字符串的不同方式以及如何比较一般的数据帧(在 SQL 中似乎要容易得多,您可以只使用关键字包含)。

对于下面的示例,第一项是参考数据,第二项是原始数据。

 grepl ("1845","UN1845")

将返回TRUE

 any ("1845"=="UN1845")

将返回FALSE(我在这里假设是因为单词必须完全匹配)

 is.element ("1845","UN1845")

将返回FALSE(与任何原因相同)

如果我想对照原始表中的每一项检查整个数据引用表,我将如何处理?

从玩耍中我可以做类似的事情

grepl(Raw$Contents, Ref$desc)

原始数据基本上是字符串,而参考数据是字符串。但是,当我运行这样的事情时,我收到消息:

In grepl(Raw$Contents, MyCode$desc)
  argument 'pattern' has length > 1 and only the first element will be used

我认为这与参考表的表大小与我运行比较的表不同这一事实有关。

样本数据:

rawdata = data.frame(A=c("UN1845","FROZEN FOOD DRY ICE","LTD QTY8000"))
refdata = data.frame(A=c("1845","8000"))
4

1 回答 1

0

错误信息的意思是:你的pattern论点有多个元素,但grepl它的家族一次只接受一种模式。您将不得不循环(或)遍历集合*apply中的每个模式。refdata

编辑:澄清: grepl只接受一种模式,但如果该模式包含完整的搜索集,例如通过 OR 运算符,grepl将按需要运行。感谢 David Arenburg 的评论。

于 2015-03-24T12:45:07.890 回答