在grepl模式(R)

时间:2016-03-07 19:56:55

标签: r grepl

有没有办法使用来自用户定义函数的参数作为grepl模式的一部分?

例如:

Function1 <- function(x, y) {
    grepl(pattern = ".*\\sy", x)
}

根据你调用函数的方式,模式中的“y”会有所不同,

即:

data <- c("Joe Smith", "John Doe")
Function1(data, S)

将返回

[1] TRUE FALSE

grepl是否有办法将y识别为外部变量? (我在反对内部尝试'y' \\yy无效)

2 个答案:

答案 0 :(得分:3)

模式只是一个字符串。您可以使用paste()进行字符串连接

grepl(pattern = paste(".*\\s",y), x)

在正则表达式字符串中引用变量没有其他“特殊”方法。

答案 1 :(得分:2)

您可以使用paste0()

来构建模式
Function1 <- function(x,y) {
            grepl(pattern = paste0(".*\\s",y), x)
            }
Function1(data, 'S')
[1]  TRUE FALSE