簡體   English   中英

將多個數據幀合並為一個數據幀

[英]Combine several data frames into a single data frame

我需要遍歷一個向量並調用一個函數。 該函數的結果是一個數據幀,我想將函數針對矢量中的每個值返回的所有數據幀組合為一個數據幀。

考慮下面的示例。 我想將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,但返回的數據幀的長度與向量的長度相同(因此,每一行都是一個數據幀,而不是向量)。 有一個簡單的解決方案嗎?

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

plyr嘗試plyr

ldply(vec, getDetails)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM