0

我正在寻找一列笔记。寻找一些字符串的存在和其他字符串的缺失。表情看起来像

toMatch <- c("words", "i", "want", "to")
notToMatch <- c("not", "in", "my", "res")
insert <- paste(paste(toMatch, collapse="|"), "!", paste(notToMatch, collapse="!"), sep="")
regexpr(insert, df$notes, ignore.case=T)

在我看来,regexpr 会算数

printNotes = +1 presence and -1 absence

如果该表达式的计算结果为 printNotes > 0,则它返回一个非 -1 的值(在 regexpr 中表示未找到)。

如果有任何 notToMatch “!”,则任何建议的 regexpr 语法都返回 -1 参数返回 TRUE?

非常感谢!

4

1 回答 1

2

您可以使用grepl()获取字符串匹配位置的逻辑向量,然后sum()使用该向量查看匹配的数字。您可以(粗略地)做同样的事情grep()并计算结果向量的长度,但grepl()表现得更加一致。

如果你想得到任何匹配的逆,你可以做!grepl("match", x),它会显示逻辑逆。

如果您*特别希望它返回TRUE,或者!您可以执行类似的操作ifelse(grepl("m", letters), TRUE, "!"),在letters常量(所有 26 个小写英文字母)中搜索“m”并在匹配时返回 TRUE 和“!” 关于匹配失败。

于 2013-03-29T23:48:49.150 回答