将输入向量的名称获取到R函数

时间:2019-01-24 22:16:48

标签: r function

我想知道如何让我的R函数foo返回输入到它的向量的名称?

在此示例中,我希望foo返回"a""b"

这是我尝试没有成功的事情:

a = 1:30 ; b = 50:60   # the inputted vectors

foo <- function(...){  # the function

 L <- list(...)
 names(L)
}

# Example of use:
foo(a, b)

3 个答案:

答案 0 :(得分:1)

使用如图所示的substitute给出一个符号对,并将deparse分别应用于每个元素将它们转换为字符串:

foo <- function(...) sapply(substitute(...()), deparse)
foo(a, b)
## [1] "a" "b"

答案 1 :(得分:1)

foo <- function(...) as.character(substitute((...)))[-1]

foo(a, b)
# [1] "a" "b"

答案 2 :(得分:0)

这里是match.call

的一个选项
foo <- function(...) sapply(as.list(match.call())[-1], as.character)
foo(a, b)
#[1] "a" "b"