Использование агрегации данных для циклов - PullRequest
0 голосов
/ 25 октября 2019

У меня есть набор данных, в котором есть статистика отдельных баскетболистов для каждой команды за 17 лет. В RI я пытаюсь превратить эти наблюдения на уровне игрока в наблюдения на уровне команды (для каждого года), используя цикл for, который перебирает год и команду, а затем объединяет индивидуальную статистику трех лучших игроков (очки, голевые передачи, подборы и т. Д.). Как бы вы посоветовали мне продолжить? (ниже вы найдете мою текущую попытку, она только извлекает наблюдения из последних команд и год набора данных и не может получить другие статистические данные, такие как количество передач и отскоков от 3 лучших бомбардиров).

for (year in 2000:2017) {

  for (team in teams) {

ts3_points =top_n(select(filter(bball, Tm == team & Year == year), PPG),3)


  }
}

1 Ответ

0 голосов
/ 25 октября 2019

Было бы более полезно с вашими данными, но я не думаю, что вам понадобится два for цикла. Просто нужно использовать dplyr . Ниже я использовал некоторые глупые данные, чтобы попытаться воссоздать вашу проблему ...

ключ имени:

month == years
carrier == team
origin == player
library(dplyr)
library(nycflights13) # library with dumby data

flights %>% 
  group_by(month, carrier, origin) %>% 
  summarise(hour_avg = mean(hour)) %>%  # create your summary stats
  arrange(desc(hour_avg)) %>% #sort or data by a summary stat
  top_n(n = 3) # return highest  hour_avg

# returns the highest hour_avg origin (player) for every month and carrier (year and team)

Надеюсь, это поможет!

...