将`...`传递给采用不同参数的函数(包括`...`)

时间:2015-06-27 00:11:26

标签: r function

当我只想要一个函数来接收这些参数时,我理解如何使用省略号:

ok <- function(x, ...){
    sum(x, ...)
}
x.in <- c(1:9, NA)
ok(x.in, na.rm=TRUE)

当一些函数只需要...的某些部分时,我开始感到困惑。我正在考虑使用类似names(formals(cor))的内容来测试...中哪些参数发送到哪里,但我不知道如何为sumplot执行此操作。一般来说,我想编写类似于以下的函数:

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中的plotsumyikes或间接(par来自plot)指示通过...提供的参数应该用于特定函数是我正在搜索的内容。我理解cor的情况,例如;但如果没有明确提及plot或它所采用的参数,如何为par执行此操作?

0 个答案:

没有答案