我想知道如何让我的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)
答案 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"