2013-12-17 67 views
0

我有隊名(teamNames)的名單和數據幀列表(weekSummaries)ldply與子集不看局部變量

我想本週獲得小組彙總的列表:

teamSummaries <- llply(teamNames,getTeamSubset) 

getTeamSubset = function(teamName){ 
    temp=ldply(weekSummaries,subset,team_name==teamName) 
} 

然而,當我運行此我得到一個錯誤

>Error in eval(expr, envir, enclos) : object 'teamName' not found 

但是當我運行命令

>ldply(weekSummaries,subset,team_name=="Denver Broncos") 

我得到一個數據框與我需要一個團隊的信息......有人可以指出我做錯了什麼?

+2

見http://adv-r.had.co.nz/Computing-on-the-language.html和http://stackoverflow.com/questions/9860090/in-r - 爲什麼 - 是 - 好於子集。 – mnel

+0

謝謝@mnel。通過查看這些鏈接,它看起來像在它傳遞的data_frame範圍內的子集。我似乎無法理清如何用eval修復它。我發佈了一個使用自定義函數的備用解決方案,因此完全避免了子集。 – dance

回答

0

看起來答案不是使用子集函數,而是使用自定義函數,將數據框傳遞給它,然後使用括號表示法進行子集劃分。像這樣的:

teamSummaries <- llply(teamNames,getTeamSubset) 

getTeamSubset = function(teamName){ 
    temp=ldply(weekSummaries,function(week){ 
    week[week$team_name==teamName,] 
    }) 
}