简体   繁体   English

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

[英]R - Fill the arguments of a function in an ellipsis

I have the following function : 我有以下功能:

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

I want to improve this function introducing the possibility to use a variable number of arguments (ie lists in my example). 我想改进此功能,以引入使用可变数量的参数(即示例中的列表)的可能性。 Here is an attempt to do this but I don't see how to fill the arguments of rbind.fill() . 这是尝试执行此操作的方法,但我看不到如何填充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)
}

I would try to iterate over the columns within an lapply call that is to be bound together. 我想尝试的遍历列lapply通话将被结合在一起。

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

If you don't like 'for loops' you can use two lapply calls. 如果您不喜欢“ for循环”,则可以使用两个lapply调用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM