字符串操作和比较

时间:2015-03-24 12:08:43

标签: r dataframe grepl

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

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

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

 grepl ("1845","UN1845")

将返回TRUE

 any ("1845"=="UN1845")

将返回FALSE(我在此假设这个词必须完全匹配)

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

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

如果我想针对原始表中的每个项检查整个数据引用表,我该怎么做?

从游戏中我可以做类似

的事情
grepl(Raw$Contents, Ref$desc)

Raw数据基本上是字符串,ref数据是字符串。但是当我运行这样的东西时,我收到了消息:

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

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

示例数据:

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

1 个答案:

答案 0 :(得分:0)

错误消息表示:您的pattern参数有多个元素,但grepl及其系列一次只接受一个模式。您必须在*apply集合中的每个模式上循环(或refdata)。

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