如何在 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))
解析为用于构成第一个参数的文字表达式。
所以我试图找到一种方法让 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))
解析为用于构成第一个参数的文字表达式。