2014-09-28 116 views
1

我需要遍歷一個向量並調用一個函數。這個函數的結果是一個數據幀,我想將該函數返回的所有數據幀組合到一個數據幀中。將幾個數據幀合併爲一個數據幀

考慮下面的例子。我想將getDetails應用於vec的每個值併合並結果。

vec = c(1,2) 
getDetails = function(match){ 
    if (match == 1) 
    return (data.frame(Player=c(1,2), Score = c(3,4))) 
    else 
    return (data.frame(Player=c(1,2), Score = c(7,8))) 
} 

我想返回的是這樣的:

Player Score 
1  1  3 
2  2  4 
3  1  7 
4  2  8 

我試圖sapply但返回相同長度的數據幀作爲載體(從而每一行是一個數據幀,而不是載體的)。有沒有簡單的解決方案?

回答

3
do.call(rbind, lapply(vec, getDetails)) 
1

嘗試這種在plyr

ldply(vec, getDetails) 
相關問題