gpt4 book ai didi

r - group_by() summarise() 和权重百分比 - R

转载 作者:行者123 更新时间:2023-12-02 08:02:49 27 4
gpt4 key购买 nike

假设一家公司有 3 位老板和 20 位员工,其中每个员工 完成了 n_Projects,总体绩效百分比:

> 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

CEO 让我计算每个老板的工作质量。但是,他要求进行特定计算:每个 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) , 等等。这些性能权重的总和就是 Boss 性能,对于 Boss 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))

除了这个问题,你能给我任何关于这个问题的反馈(特别是我的代码)或任何提高数据操作技能的建议吗? (你可以在我的个人资料中看到我问了很多这样的问题,但我仍然无法自己解决)

最佳答案

我们可以获得“n_Projects”和“Performance”的乘积的总和,然后除以“total_projects”

library(dplyr)
df %>%
group_by(Boss) %>%
summarise(total_projects = sum(n_Projects),
Weight_Project = sum(n_Projects * Performance)/total_projects)
# or
# Weight_Project = n_Projects %*% Performance/total_projects)
# A tibble: 3 x 3
# Boss total_projects Weight_Project
# <int> <int> <dbl>
#1 1 604 0.518
#2 2 595 0.475
#3 3 345 0.649

关于r - group_by() summarise() 和权重百分比 - R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54912864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com