R在输入另一个函数时获取对象名称

R get object name when is input of another function

我想获取输入到具有另一个名称的函数中的对象的名称。 鉴于

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

fun1(fun_input = new_object)

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

我按照 here 发布的解决方案中的建议尝试了 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