R:使用列表作为省略号参数

JD *_*ong 9 parameters r function ellipsis

我遇到了一种情况,我需要将所有额外的参数传递给R函数并将它们滚动到一个对象中供以后使用.我认为前面关于函数省略号的问题会对我有所帮助,但我仍然无法理解如何做到这一点.这是我想做的一个非常简单的例子:

newmean <- function(X, ...){
  args <- as.list(substitute(list(...)))[-1L]
  return(mean(X, args))
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中我尝试了许多不同的args配方,并在返回调用中尝试了未列出的args.但我无法做到这一点.有小费吗?

我意识到我可以这样做:

newmean <- function(X, ...){
    return(mean(X, ...))
}
Run Code Online (Sandbox Code Playgroud)

但我需要在一个对象中有...参数,我可以将其序列化并读回另一台机器.

Jyo*_*rya 10

怎么样

newmean <- function(X, ...){
  args <- as.list(substitute(list(...)))[-1L]
  z<-list(X)
  z<-c(z,args)
  do.call(mean,z)
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么麻烦?一个简单的`list(...)`似乎解决了这个问题. (2认同)