R: использование списка для аргументов многоточия - PullRequest
9 голосов
/ 29 июня 2010

Я столкнулся с ситуацией, когда мне нужно взять все дополнительные аргументы, переданные функции R, и свернуть их в объект для дальнейшего использования.Я думал, что предыдущий вопрос об эллипсах в функциях поможет мне, но я все еще не совсем понимаю, как это сделать.Вот очень простой пример того, что я хотел бы сделать:

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

Я попробовал несколько различных формулировок аргументов в приведенном выше примере и попытался перечислить аргументы в обратном вызове.Но я не могу сделать эту работу.Любые советы?

Я понимаю, что мог бы сделать это:

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

Но мне нужно иметь ... аргументы в объекте, который я могу сериализовать и прочитать обратно на другую машину.

1 Ответ

10 голосов
/ 29 июня 2010

Как насчет

newmean <- function(X, ...){
  args <- as.list(substitute(list(...)))[-1L]
  z<-list(X)
  z<-c(z,args)
  do.call(mean,z)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...