R - Заполнить аргументы функции многоточием

У меня есть следующая функция:

ExampleFunction <- function(ListNumber1, ListNumber2)
{
  OutputData <- list()
  OutputData[[1]] <- rbind.fill(ListNumber1[[1]], ListNumber2[[1]])
  OutputData[[2]] <- rbind.fill(ListNumber1[[2]], ListNumber2[[2]])
  return(OutputData)
}

Я хочу улучшить эту функцию, предоставив возможность использовать переменное количество аргументов (т.е. списки в моем примере). Вот попытка сделать это, но я не вижу, как заполнить аргументы rbind.fill().

ExampleFunctionUpgrade <- function(...)
{
  Arguments <- list(...)
  OutputData <- list()
  VarNames <- paste0("List", seq_along(Arguments))
  for (i in 1:length(Arguments))
  {
    assign(VarNames[i], Arguments[[i]])
  }
  OutputData <- rbind.fill(???)
  return(OutputData)
}

person Kumpelka    schedule 14.11.2016    source источник


Ответы (1)


Я бы попытался выполнить итерацию по столбцам внутри вызова lapply, который должен быть связан вместе.

ExampleFunctionUpgrade <- function(...)
{
  Arguments <- list(...)
  OutputData <- list()
  for(i in 1:length(Arguments[[1]])) {
    OutputData[[i]] <- rbind.fill(lapply(Arguments, '[[', i))
  }
  return(OutputData)
}

Если вам не нравятся циклы for, вы можете использовать два вызова lapply.

person Pierre L    schedule 14.11.2016