如何告诉函数输出输入名称?
例如:
test <- function (thisisthename) {
print (thisisthename)
}
input <- apple
现在,如果我这样做:
test(input)
将输出
"apple"
但如何输出“输入”,因为“输入”是输入的名称?
答案 0 :(得分:1)
尝试:
test <- function (thisisthename) {
substitute(thisisthename)
}
或如果您需要引号,请使用deparse(substitute(thisisthename))
。
答案 1 :(得分:0)
调用substitute(x)
返回变量x
引用的解析树(参数x的内部表示),deparese
获取解析树并返回带有R的字符串该解析树的代码表示。因此,FUN
返回参数x
的字符串表示形式:
FUN = function(x)deparse(substitute(x))
请记住,deparse
与解析相反 - 它采用代码并生成R可以评估的符号树。因此,FUN
返回表达式,可以是变量名,如:
FUN(x=foo)
#> "foo"
或表达:
FUN(x=1:2 + 3)
#> 1:2 + 3
请注意,deparsing并未完全概括输入的代码文本:
FUN(x=1:2+3)
#> 1:2 + 3
FUN(x=1:2 + 3)
#> 1:2 + 3
并且deparse(substitute(x))
适用于普通变量,而不仅仅是函数参数:
y = 1:2 + 3
deparse(substitute(y))
#> 1:2 + 3