R省略号 - 传递给其他方法或从其他方法传递的其他参数

时间:2018-01-27 21:05:41

标签: r ellipsis

我理解dot-dot-dot的含义一般。当我想用未知数量的参数创建自己的函数时,我理解如何使用它。

我不明白它是如何工作的,例如在函数variable.names()。当我执行?variable.names时,会写下以下内容:

  

......传递给其他方法或从其他方法传递的其他参数。

这究竟是什么意思?我不知道我能通过那里。这些传递的参数将如何以及在何处使用。

1 个答案:

答案 0 :(得分:4)

省略号参数允许将参数传递给下游函数。我们将用简单的R函数说明如下。

testfunc <- function(aFunction,x,...) {
     aFunction(x,...)
}
aVector <- c(1,3,5,NA,7,9,11,32)

# returns NA because aVector contains NA values
testfunc(mean,aVector)

# use ellipsis in testfunc to pass na.rm=TRUE to mean()
testfunc(mean,aVector,na.rm=TRUE)

...和输出:

> testfunc <- function(aFunction,x,...) {
+      aFunction(x,...)
+ }
> aVector <- c(1,3,5,NA,7,9,11,32)
> 
> # returns NA because aVector contains NA values
> testfunc(mean,aVector)
[1] NA
> # use ellipsis in testfunc to pass na.rm=TRUE to mean()
> testfunc(mean,aVector,na.rm=TRUE)
[1] 9.714286