将省略号(...)发送到多个函数

时间:2016-03-28 08:44:15

标签: r function ellipsis

...可以为函数中的函数调度其他参数。除其他外,我使用它来维护简约的函数声明而不是大量的参数。但有时候,我需要不止一个函数可以使用传递给函数的其他参数。

也许一个例子可以说清楚:

heart <- structure(c(200, 162, 116, 99, 118, 164, 202, 242, 288, 305, 
                     284, 238, 37, 76, 108, 154, 200, 211, 175, 211, 197, 151, 105, 
                     73), .Dim = c(12L, 2L), .Dimnames = list(NULL, c("x", "y")))

# both functions in this function would benefit using `...`
plot_this <- function(xy, ...){
  plot(xy, ...)
  polygon(xy, ...)
}

然后,使用仅“关注”一个函数的参数调用此函数(即asp的{​​{1}}和plot的{​​{1}})(大部分时间)工作但density

polygon

我知道这些警告完全合法且有用。

当在函数中多使用warnings时,是否有一种机制可以处理将省略号调度到'右'的函数?“。

我正在寻找一些东西:

  • 比使用此模式plot_this(heart, asp=1, density=30) Warning messages: 1: In plot.window(...) : "density" is not a graphical parameter 2: In plot.xy(xy, type, ...) : "density" is not a graphical parameter 3: In axis(side = side, at = at, labels = labels, ...) : "density" is not a graphical parameter 4: In axis(side = side, at = at, labels = labels, ...) : "density" is not a graphical parameter 5: In box(...) : "density" is not a graphical parameter 6: In title(...) : "density" is not a graphical parameter ...
  • 更优雅
  • 可能比答案为there
  • ..._polygon更为简单
  • 不如args.polygon
  • 粗略

0 个答案:

没有答案