如何在 R 中执行正则表达式任务

How to Perform a Regex Task in R

所以我试图找到一种方法让 R 为我正在制作的函数检测字符“ar1”。

if(str_detect(as.character(y1.AR2), regex('ar1', ignore_case = T)) == T){
  print('love')
} else {
  print('nolove')
}

例如,上面的代码求值为 True,但我希望它求值为 false,因为没有 'AR1',顺序是 'A',然后是 'R',然后是'1',在对象的名称 'y1.AR2' 中。我希望语句评估为 True 的唯一一次是它是否按该顺序匹配 'AR1',无论它是大写还是小写。

有人知道使这成为可能的方法吗?

提前致谢!

func <- function(x) {
  xname <- deparse(substitute(x))
  if (grepl("ar1", xname, ignore.case = TRUE)) "love" else "nolove"
}
y1.AR2 <- 1
func(y1.AR2)
# [1] "nolove"

y1.AR1 <- 2
func(y1.AR1)
# [1] "love"

查找函数参数的名称有点脆弱。例如,做

func(c("1", "quux", "tar1234"))
# [1] "love"

因为 deparse(substitute(x)) 解析为用于构成第一个参数的文字表达式。