根据函数R(deparse)中的点获取变量参数的名称

根据函数R(deparse)中的点获取变量参数的名称,r,R,我正在创建一个基于一些虚拟变量的自动绘图仪。我将其设置为: plotter <- function(...) { } 将屈服 "variablename" 这是一个开始,但是在有多个参数的情况下,我该怎么做呢?可能吗?有解决方法吗?名称(列表(…)将为您提供一个字符向量,其中包含所提供的参数的名称,这些参数已被…吸收: plotter <- function(...) {names(list(...))} plotter(x=1:4, y=11:14) # [1] "x" "y"

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

plotter <- function(...) { }
将屈服

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

名称(列表(…)
将为您提供一个字符向量,其中包含所提供的参数的名称,这些参数已被
吸收:

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

plotter我想如果你能给出一个具体的例子来说明你想做什么,这会有所改进。不过,我必须给他们起个名字。调用
绘图仪(longvarname=longvarname)
看起来有点傻,如果不显式添加名称,就无法让绘图仪自己进行解释?@duality-尝试
名称(llist(…)
(它在库
Hmisc
[1]“…”NA
,当给定两个参数时,@duality--基本思想是
sapply(as.list(match.call())[-1],as.character)
。将在我的答案中添加一个稍微更精确的版本。@Duality,是的,这很奇怪,它在函数之外工作-一定是某种环境问题
plotter <- function(...) {names(list(...))}
plotter(x=1:4, y=11:14)
# [1] "x" "y"
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"