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

标签 r

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

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"

关于r - 根据函数R中的dot dot dot获取变量参数的名称(deparse),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16819275/

相关文章:

r - ggplot在两个不同比例的图中在右上角添加图像

r - 如何找到二进制文件的长度

r - 如何从 R 中的 tidygraph 对象列表中操作 tidygraph 对象?

R循环: Perform a spearman correlation for Every 12 Rows

r - 如何使用 R 调查包分析加权样本中的多响应问题?

r - Shiny 的 "ERROR: Tabs should all be unnamed arguments"

r - 同时通过 coord_sf 更改 geom_sf 和 geom_point 的投影时出错

r - 将逻辑向量转换为字符时如何避免 R 将 F 转换为 False

r - 替换字符串而不改变其他嵌入字符串

带圆圈的 R 热图