如何覆盖用" ..."

时间:2015-06-12 20:15:38

标签: r plot

假设我写了以下函数

f = function(x, y, ...){
    plot(x, ...)
    lines(y, col='red', ...)
}

当我使用参数f调用col=时,会抛出错误。我知道如何查找使用...传递的参数,但我想从它们中移除col,如果它存在,所以以下工作。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

如果您想设置该值,最简单的方法就是截取该值,以防止它首先进入...

f = function(x,y,col='red',...){
 plot(x,...)
 lines(y,col=col,...)
}

或者你可以抓住点并调整它们,但是当你通过do.call列出时你必须传递参数

f = function(x,y,...){
 plot(x,...)
 dots <-list(...)
 dots$col<-NULL
 do.call(lines, c(list(y,col="red"), dots))
}