我正在创建一个基于一些虚拟变量的自动绘图仪。我这样设置:
plotter <- function(...) { }
将绘制我喂它的所有假人。
但是,我希望它能够为绘图添加标签,即变量名。我知道
deparse(substitute(variablename))
将产生
"variablename"
这是一个开始,但是在有多个参数的情况下我该如何做呢?有可能吗?有解决方法吗?
我正在创建一个基于一些虚拟变量的自动绘图仪。我这样设置:
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"