Предположим, что в компании есть 3 босса и 20 сотрудников, где каждый Employee
сделал n_Projects
с общим Performance
в процентах:
> df <- data.frame(Boss = sample(1:3, 20, replace=TRUE),
Employee = sample(1:20,20),
n_Projects = sample(50:100, 20, replace=TRUE),
Performance = round(sample(1:100,20,replace=TRUE)/100,2),
stringsAsFactors = FALSE)
> df
Boss Employee n_Projects Performance
1 3 8 79 0.57
2 1 3 59 0.18
3 1 11 76 0.43
4 2 5 85 0.12
5 2 2 75 0.10
6 2 9 66 0.60
7 2 19 85 0.36
8 1 20 79 0.65
9 2 17 79 0.90
10 3 14 77 0.41
11 1 1 78 0.97
12 1 7 72 0.52
13 2 6 62 0.69
14 2 10 53 0.97
15 3 16 91 0.94
16 3 4 98 0.63
17 1 18 63 0.95
18 2 15 90 0.33
19 1 12 80 0.48
20 1 13 97 0.07
Генеральный директор просит меня вычислитькачество работы для каждого босса.Тем не менее, он запрашивает конкретный расчет: каждое значение Performance
должно иметь вес, равный значению n_Project
над общей суммой n_Project
для этого босса.
Например, для босса 1 мы имеемвсего 604 n_Projects
, где проект 1 имеет весовой коэффициент производительности 0,13
(78/604 * 0,97 = 0,13)
, проект 3 - весовой коэффициент производительности 0,1
(59/604 * 0,18 = 0,02
) и т. д.Сумма этих весов производительности - это производительность босса, для босса 1 - 0,52
.Итак, окончательный результат должен быть таким:
Boss total_Projects Performance
1 604 0.52
2 340 0.18 #the values for boss 2 are invented
3 230 0.43 #the values for boss 3 are invented
Однако я все еще борюсь с этим:
df %>%
group_by(Boss) %>%
summarise(total_Projects = sum(n_Projects),
Weight_Project = n_Projects/sum(total_Projects))
В дополнение к этой проблеме, можете ли вы дать мне какой-либо отзывоб этой проблеме (мой код, в частности) или какие-либо рекомендации по улучшению навыков манипулирования данными?(вы можете видеть в моем профиле, что я задавал много подобных вопросов, но все же я не могу решить их самостоятельно)