如何解决如何在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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。