R - 在省略号中填充函数的参数

时间:2016-11-14 14:59:07

标签: r function ellipsis

我有以下功能:

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)
}

1 个答案:

答案 0 :(得分:2)

我会尝试迭代中的lapply要捆绑在一起的列。

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

如果你不喜欢'for loops',你可以使用两个lapply调用。