I want to capture the incoming arguments that I'm passing to a function. How can I do this? The function below isn't quite what I want. The output I want is "Using mtcars and am". I was under the impression rlang could help with this, but I haven't been able to find a function to get the job done.
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"
We can use deparse(substitute(arg))
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)
Or with 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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With