2013-12-17 4 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,] 
    }) 
} 
Смежные вопросы