在grepl模式(R)中使用函数参数

在grepl模式(R)中使用函数参数,r,grepl,R,Grepl,有没有一种方法可以将用户定义函数中的参数用作grepl模式的一部分 例: 有没有办法让grepl将y识别为外部变量?(我尝试了'y'\\y和y内部反勾号,但没有效果)您可以使用paste0()构建您的图案: Function1您可以使用paste0()构建模式: Function1模式只是一个字符串。您可以使用paste()进行字符串连接 grepl(pattern = paste(".*\\s",y), x) 在正则表达式字符串中没有其他引用变量的“特殊”方式。该模式只是一个字符串。您可以使

有没有一种方法可以将用户定义函数中的参数用作grepl模式的一部分

例:


有没有办法让
grepl
y
识别为外部变量?(我尝试了
'y'
\\y和
y
内部反勾号,但没有效果)

您可以使用
paste0()
构建您的图案:


Function1您可以使用
paste0()
构建模式:


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

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

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

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

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

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

我猜您发布的答案与其他帖子的答案相同,这也是正确的。再加一个。@HubertL这确实有效,谢谢。然而,为什么
paste0()
起作用而
paste()
不起作用?啊哈,经过一番思考,我认为这与
paste0()
的默认
sep=“”
有关,我猜你发布的答案与另一篇帖子相同,这也是事实。再加一个。@HubertL这确实有效,谢谢。然而,为什么
paste0()
起作用而
paste()
不起作用呢?经过一番思考,我认为这与
paste0()
的默认
sep=“”
有关
grepl(sprintf('%s%s',y),x)
也可以使用。
grepl(sprintf('%s%s',y),x)
也可以使用。
[1] TRUE FALSE
Function1 <- function(x,y) {
            grepl(pattern = paste0(".*\\s",y), x)
            }
Function1(data, 'S')
[1]  TRUE FALSE
grepl(pattern = paste(".*\\s",y), x)