gpt4 book ai didi

r - 如何计算相邻行的平均值?

转载 作者:行者123 更新时间:2023-12-05 02:30:25 25 4
gpt4 key购买 nike

我得到了一个 DF,其中包含人们的薪水数据和他们的工作。一排是一个人。我需要计算同一份工作的 3 个人的平均工资,并从中制作一个新的 DF。如果 DF 从最高工资到最低工资排序,则这 3 个人需要从事相同的工作并且他们的工资需要相邻。如果他们有相同的工作,则他们自己以及 DF 中高于和低于他们的人的平均工资。一份工作中薪水最高和最低的人被排除在外,因为没有人高于或低于他们。

这是我的数据样本

Job     salaryIT       5000IT       4500IT       4000IT       4000Sales    4500Sales    4500Sales    4000Sales    3000Sales    2500HR       3000HR       2500HR       2300

这就是我想要得到的(如果平均工资转到小数位我四舍五入。但在 R DF 中没有必要这样做。小数位是可以的。

Job    salaryIT      4500IT      4167Sales   4333Sales   3833Sales   3167HR      2600

我被困住了,因为我无法弄清楚如何计算同一工作的 3 个人的平均值并排除顶部和底部。希望你能帮上忙。

谢谢

最佳答案

您需要按组的滚动平均值。这可以通过 zoo::rollmean 结合 dplyr::group_by 来完成。

library(dplyr)
library(zoo)

dat %>%
group_by(Job) %>%
summarise(mean = rollmean(salary, 3, align = "right"))

Job mean
<fct> <dbl>
1 IT 4500
2 IT 4167.
3 Sales 4333.
4 Sales 3833.
5 Sales 3167.
6 HR 2600

关于r - 如何计算相邻行的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71869506/

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