当是另一个函数的输入时,R获取对象名称



我想获得一个对象的名称,该对象被输入到另一个名称的函数中。给定

new_object = 10
fun1 <- function(fun_input){
...
}
fun1(fun_input = new_object)

fun1的期望输出应该是字符串"new_object"

我在这里发布的解决方案中尝试了deparsesubstitute,但我只得到了"fun_input"作为输出。感谢

你能分享你的代码吗?我得到输出没有问题。

new_object = 10
new_object
[1] 10
fun1 <- function(fun_input) {
deparse(substitute(fun_input))
}
fun1(new_object)
[1] "new_object"

也许你正在寻找这个:

我怀疑在您的函数中,您正在通过进一步的步骤(例如循环等(来执行(评估(fun_input。问题是,从您第一次使用fun_input开始,它就是一个评估的表达式(准结果(。为了避免这种情况,我们必须用substitute捕获fun_input

现在您得到了一个可以被视为列表的对象new_object

fun1 <- function(fun_input) {
substitute(fun_input)
}
fun1(new_object)
new_object
new_object[[1]]
[1] 10

最新更新