当我只想要一个函数来接收这些参数时,我理解如何使用省略号:
ok <- function(x, ...){
sum(x, ...)
}
x.in <- c(1:9, NA)
ok(x.in, na.rm=TRUE)
当一些函数只需要...
的某些部分时,我开始感到困惑。我正在考虑使用类似names(formals(cor))
的内容来测试...
中哪些参数发送到哪里,但我不知道如何为sum
或plot
执行此操作。一般来说,我想编写类似于以下的函数:
yikes <- function(x, ...){
plot(x, ...)
sum(x, ...) + cor(x, ...)
}
x.in <- c(1:9, NA)
x.in.jitter <- jitter(x.in)
yikes(x.in, y=x.in.jitter, na.rm=TRUE, use="na.or.complete", type="o")
理想情况下,yikes()
会执行以下操作:
plot(x=x.in, y=x.in.jitter, type="o")
sum(x.in, na.rm=TRUE) + cor(x=x.in, y=x.in.jitter, use="na.or.complete")
我怀疑部分解决方案可能会使用match.call
。如何使yikes()
这样的函数起作用?这只是一个坏主意吗?
编辑:根据您知道/愿意明确描述哪些参数传递给哪些函数的情况,第一条评论中的第二个链接可以很好地回答这个问题。使用直接调用的函数的参数(例如,cor
中的plot
,sum
,yikes
或间接(par
来自plot
)指示通过...
提供的参数应该用于特定函数是我正在搜索的内容。我理解cor
的情况,例如;但如果没有明确提及plot
或它所采用的参数,如何为par
执行此操作?