如何在 R 中将函数参数捕获为字符串?
How can I capture function arguments as strings in R?
我想捕获传递给函数的传入参数。我怎样才能做到这一点?下面的功能不是我想要的。我想要的输出是 "Using mtcars and am"
。我的印象是 rlang
可以帮助解决这个问题,但我一直没能找到一个函数来完成这项工作。
fx_capture<- function(fx_data, fx_var) {
name_data <- quote(fx_data)
name_var <- quote(fx_var)
paste("Using", name_data, "and", name_var)
}
fx_capture(mtcars, am)
> "Using fx_data and fx_var"
我们可以使用deparse(substitute
fx_capture<- function(fx_data, fx_var) {
name_data <- deparse(substitute(fx_data))
name_var <- deparse(substitute(fx_var))
paste("Using", name_data, "and", name_var)
}
fx_capture(mtcars, am)
或者用match.call
fx_capture<- function(fx_data, fx_var) {
paste0("Using ", do.call(paste, c(lapply(match.call()[-1],
as.character), sep = ' and ')))
}
fx_capture(mtcars, am)
这是一个使用 sys.call
的选项
fx_capture<- function(fx_data, fx_var) {
paste0("Using ", paste0(sys.call()[-1],collapse = " and "))
}
这样
> fx_capture(mtcars, am)
[1] "Using mtcars and am"
我想捕获传递给函数的传入参数。我怎样才能做到这一点?下面的功能不是我想要的。我想要的输出是 "Using mtcars and am"
。我的印象是 rlang
可以帮助解决这个问题,但我一直没能找到一个函数来完成这项工作。
fx_capture<- function(fx_data, fx_var) {
name_data <- quote(fx_data)
name_var <- quote(fx_var)
paste("Using", name_data, "and", name_var)
}
fx_capture(mtcars, am)
> "Using fx_data and fx_var"
我们可以使用deparse(substitute
fx_capture<- function(fx_data, fx_var) {
name_data <- deparse(substitute(fx_data))
name_var <- deparse(substitute(fx_var))
paste("Using", name_data, "and", name_var)
}
fx_capture(mtcars, am)
或者用match.call
fx_capture<- function(fx_data, fx_var) {
paste0("Using ", do.call(paste, c(lapply(match.call()[-1],
as.character), sep = ' and ')))
}
fx_capture(mtcars, am)
这是一个使用 sys.call
fx_capture<- function(fx_data, fx_var) {
paste0("Using ", paste0(sys.call()[-1],collapse = " and "))
}
这样
> fx_capture(mtcars, am)
[1] "Using mtcars and am"