例如,假设我希望能够定义一个函数,该函数返回与第一个参数连接的赋值变量的名称:
a <- add_str("b")
a
# "ab"
Run Code Online (Sandbox Code Playgroud)
上面示例中的函数看起来像这样:
add_str <- function(x) {
arg0 <- as.list(match.call())[[1]]
return(paste0(arg0, x))
}
Run Code Online (Sandbox Code Playgroud)
但是,函数的arg0行被一行替换,该行将获得被赋值变量的名称("a")而不是函数的名称.
我已经尝试过使用match.call和sys.call,但我无法让它工作.这里的想法是在变量和函数结果上调用赋值运算符,因此应该是函数调用的父调用.