获取作为函数参数提供的列表变量的名称

时间:2013-03-12 14:14:07

标签: r

假设我有一个函数接受始终属于列表的变量。

myfun <- function(x$name,y$name) { 
 # stuff 
} 

我想做的是获取使用的名称。

alist <- list(Hello=1,Goodbye=2)

myfun(alist$Hello, alist$Goodbye) { 
 # I want to be able to work with the characters "Hello" and "Goodby" in here
}

所以,在我的函数中,如何获得字符“Hello”和“Goodbye”。给定alist$Helloalist$Goodbye

3 个答案:

答案 0 :(得分:9)

我记得plot.default使用deparse(substitute(执行此操作:

a <- list(a="hello",b=c(1,2,3))
f <- function(x,y) { print(deparse(substitute(x))); print(deparse(substitute(y))) }
f(a$a,a$b)
#[1] "a$a"
#[1] "a$b"

答案 1 :(得分:6)

这样的事情,也许是:

myfun <- function(x) { print(substitute(x))}
myfun(iris$Sepal.Length)
## iris$Sepal.Length

答案 2 :(得分:3)

我用list参数创建函数:

myfun <- function(l) {
    print(names(alist))
}
myfun(alist)
# [1] "Hello"   "Goodbye"