Суммируйте средний балл членов команды - PullRequest
0 голосов
/ 25 января 2019

У меня есть данные членов команды.В каждой команде около 5 человек.Типичная функция агрегирования позволит мне вычислить средний балл всей команды.Тем не менее, мне интересно, для каждого участника, рассчитать средний балл участников команды участника, исключая балл участника.Любое предложение о том, как это сделать?

1 Ответ

0 голосов
/ 25 января 2019

Если я правильно понимаю ваш вопрос, вы можете попробовать это:

library(dplyr)

df <- tibble(team = c(rep("A", 5), rep("B", 5), rep("C", 5)),
             player = letters[1:15],
             score = 1:15)

# find aggregate team scores and number of team members
team_means <- df %>%
  group_by(team) %>%
  summarise(team_sum = sum(score, na.rm = TRUE),
            team_n = n())

# find average of rest of team's performance
# this is the the "remaining players' average"; the "- 1" could be removed for the team average.
left_join(df, team_means, by = "team") %>%
  mutate(average = (team_sum - score) / (team_n - 1)) %>%
  select(team, player, score, average)

# A tibble: 15 x 4
   team  player score average
   <chr> <chr>  <int>   <dbl>
 1 A     a          1    3.5 
 2 A     b          2    3.25
 3 A     c          3    3   
 4 A     d          4    2.75
 5 A     e          5    2.5 
 6 B     f          6    8.5 
 7 B     g          7    8.25
 8 B     h          8    8   
 9 B     i          9    7.75
10 B     j         10    7.5 
11 C     k         11   13.5 
12 C     l         12   13.2 
13 C     m         13   13   
14 C     n         14   12.8 
15 C     o         15   12.5 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...