2017-06-13 37 views
0

我已經寫一個函數,它有三個參數:環路同時在兩個列表中的R

create.template <- function(t.list, x, y){ 
    temp <- cbind(get(t.list[x]), get(t.list[y]), NA) 
} 

該函數的輸出與11列和17行的data.frame。

現在我想創建一個循環遍歷函數的兩個列表,一個用於x和一個用於y。從而

x.list <- list(1,2,3) 
y.list <- list(4,5,6) 

在最後的步驟我想建立類似

for (x in x.list and y in y.list){ 
    create.template(t.list, x, y) 
} 

和可能所得dataframes(3個dataframes 11列,每列)在橫行一個最終數據幀進行組合。我知道你可以用zip()函數在Python中做這件事,然後通過append()和concatenate()方法輕鬆地追加結果,但是到目前爲止我還沒有在R中找到相同的結果。任何幫助,高度讚賞!

+3

'mapply'或'Map' – jogo

+0

是什麼'cind'在你的代碼中。它是'cbind' – akrun

回答

0

我們可以mget得到多個對象的值,使用Reducedo.callcbindlistvectors

Reduce(cbind, c(mget(ls(pattern = "\\.list")), NA)) 

或者

do.call(cbind, c(mget(c("x.list", "y.list")), NA))