r - R语言,如何通过跳过相同数字的组来求和值(嵌套在另一个组中)?
问题描述
我想添加一个新列,计算每个公司每个员工的平均奖金,例如,A公司的预期输出为(18+8+2)/3,并将该值填充到A公司的每一行。然后公司 B、C、D 的逻辑相同。顺便说一句,不能删除具有重复值的行。起初,我想计算奖金平均值的总和,但代码不起作用。然后我想添加一个跳过相同值的循环,但它也不起作用。有人有什么想法吗?我非常感谢!
解决方案
缺乏可读的输入,我编了一些
set.seed(30258)
df <- tibble(COMPANY.ID = sample(LETTERS[1:4], 20, replace = TRUE),
EMP.ID = sample(1:5, 20, replace = TRUE),
BONUS = sample(2:20, 20, replace = TRUE)) %>%
arrange(COMPANY.ID, EMP.ID, BONUS)
# A tibble: 20 x 3
COMPANY.ID EMP.ID BONUS
<chr> <int> <int>
1 A 1 3
2 A 2 13
3 A 2 16
4 B 1 10
5 B 1 18
6 B 2 20
7 B 3 3
8 B 4 20
9 B 5 7
10 B 5 10
11 B 5 10
12 C 2 4
13 C 3 4
14 C 3 16
15 C 5 4
16 C 5 13
17 D 1 8
18 D 1 9
19 D 3 8
20 D 4 12
公司平均奖金的公式 - 如果员工从同一家公司获得多个奖金,它们是累加的。
avgCoBonus <- df %>%
group_by(COMPANY.ID) %>%
summarise(AVG.BONUS = round(sum(BONUS) / length(unique(EMP.ID)), 2))
# A tibble: 4 x 2
COMPANY.ID AVG.BONUS
<chr> <dbl>
1 A 16
2 B 17.6
3 C 13.7
4 D 12.3
我想这就是你的想法。
推荐阅读
- postgresql - 如何在 Pg Admin ||| 中运行 SQL 脚本而不丢失数据?
- r - 有没有办法在 R DT pacakge 中制作多级行分组表
- java - 通过无头安装 4J 自动化
- azure - 复制 blob 时 Azure SAS 到期
- inno-setup - 在存在重复项的 Inno Setup 中使用多个 DLL 文件
- android - 在路径上找不到类“com.jambod.user.model.ProcessModel”:仅在发布 apk 中出现 DexPathList 错误
- javascript - 为什么我无法在 ios9 门户网页上获取 localStorage?
- javascript - 响应式将文本输入内容右对齐
- javascript - Bootstrap 4 - 完美滚动条的工具提示和弹出框对齐问题
- vb.net - 反转文本框多行