有没有办法控制%in%运算符的区分大小写?在我的情况下,无论输入的情况如何,我希望它返回true:
stringList <- c("hello", "world")
"Hello" %in% stringList
"helLo" %in% stringList
"hello" %in% stringList
将此代码视为可重现的示例,但在我的实际应用程序中,我还使用左侧的字符串列表并检查stringList中是否存在单词。
答案 0 :(得分:3)
使用grepl
,因为它有ignore.case
参数:
grepl("^HeLLo$",stringList,ignore.case=TRUE)
[1] TRUE FALSE
第一个参数是正则表达式,因此它为您提供了更大的灵活性,但您必须从^
开始并以$
结束以避免拾取子字符串。
答案 1 :(得分:2)
除了@ James的回答,如果你想避免正则表达式,你也可以使用tolower
:
tolower("HeLLo") %in% stringlist
如果左侧也是一个字符向量,那么我们对双方都进行了权衡,例如:
x <- c("Hello", "helLo", "hello", "below")
stringList <- c("heLlo", "world")
tolower(x) %in% tolower(stringList)
# [1] TRUE TRUE TRUE FALSE