我试图了解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"))
答案 0 :(得分:0)
错误消息表示:您的pattern
参数有多个元素,但grepl
及其系列一次只接受一个模式。您必须在*apply
集合中的每个模式上循环(或refdata
)。
编辑:澄清:grepl
只接受一种模式,但如果该模式包含完整的搜索集,例如通过OR运算符,grepl
将根据需要运行。感谢David Arenburg的评论。