2016-11-14 114 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調用。

相關問題