2016-11-14 63 views
0

我有以下功能:的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) 
} 

回答

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调用。

相关问题