【问题标题】:R: using a list for ellipsis argumentsR:使用省略号参数列表
【发布时间】:2011-03-09 17:38:56
【问题描述】:

我遇到了一种情况,我需要将所有额外的参数传递给 R 函数并将它们滚动到一个对象中以供以后使用。我认为函数中的previous question about ellipses 会对我有所帮助,但我仍然不能完全掌握如何做到这一点。这是我想做的一个非常简单的例子:

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

我在上面的示例中尝试了许多不同的 args 公式,并尝试在返回调用中取消列出 args。但我无法完成这项工作。有什么建议吗?

我意识到我可以这样做:

newmean <- function(X, ...){
    return(mean(X, ...))
}

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

【问题讨论】:

  • 我完全误解了你的问题,所以我删除了我的答案。要添加的一件事 - 仅在需要时使用 substitute[-1L] hack,如果您只需要值,则 list(...) 就足够了,如果您想进一步传递参数,则传递为 ...

标签: r parameters function ellipsis


【解决方案1】:

怎么样

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

【讨论】:

  • 你最近帮了我很多忙!再次感谢。
  • @JD,我也在努力回答你的问题。
  • 为什么麻烦?一个简单的list(...) 似乎可以解决问题。
  • @qed 该示例来自 data.frame。似乎没有人能够弄清楚它试图避免什么极端情况。
猜你喜欢
  • 2013-06-27
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 2018-09-02
  • 2019-02-01
  • 1970-01-01
相关资源
最近更新 更多