我在尝试通过几个函数传递变量时遇到了问题,在最后一个函数中,我想获取原始变量的名称。但是似乎R中的替代函数仅在“本地”环境中查找,或者只查找上一级。好吧,让我用代码来解释一下:
fun1 <- function (some_variable) {deparse(substitute(some_variable)}
fun2 <- function (var_pass) { fun1 (var_pass) }
my_var <- c(1,2) # I want to get 'my_var' in the end
fun2 (my_var) # > "var_pass"
看起来我们正在打印仅传递给fun1的变量名称。替代文档告诉我们,可以使用env参数指定查找的位置。但是通过将 .Global 或 .BaseNamespaceEnv 作为substitute的参数进行传递,我得到了更奇怪的结果 - "some_variable"。
我相信答案在这个带有env参数的函数中,所以,您能否请解释一下它的工作原理以及如何获得我需要的内容。谢谢!