我正在基于一些虚拟变量创建一个自动绘图仪。我将其设置为:

plotter <- function(...) { }


将绘制我喂食的所有假人。

但是,我希望它能够为绘图添加标签,即变量名。
我知道

deparse(substitute(variablename))


将产生

"variablename"


这是一个开始,但是在有多个参数的情况下该如何做呢?有可能吗?有解决方法吗?

最佳答案

names(list(...))将为您提供一个字符向量,其中包含已被...吸收的所提供参数的名称:

plotter <- function(...) {names(list(...))}
plotter(x=1:4, y=11:14)
# [1] "x" "y"




或者,如果您想传递未命名的参数,请尝试以下方法(扩展@baptiste现在删除的答案):

plotter <- function(..., pch=16, col="red") {
    nms <- setdiff(as.character(match.call(expand.dots=TRUE)),
                   as.character(match.call(expand.dots=FALSE)))
    nms
}

x <- 1:4
y <- 1:14
plotter(x, y, col="green")
# [1] "x" "y"

09-04 23:10