我需要迭代一个向量并调用一个函数。这个函数的结果是一个数据框,我想把函数返回的所有数据帧组合到一个数据框中。
考虑以下示例。我想将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,但返回了与向量长度相同的数据帧(因此每行都是数据帧而不是向量)。有一个简单的解决方案吗?
答案 0 :(得分:3)
do.call(rbind, lapply(vec, getDetails))
答案 1 :(得分:1)
在plyr
,
ldply(vec, getDetails)