我必须计算四分位数,但我需要按两种不同的条件对数据进行分组。首先,我需要将他们按照他们在公司中所处的位置进行分组,但是我还需要根据他们所属的工会对它们进行分组。以下是我的数据示例:
Position Union Salary
Consultant A 1000
Receptionist B 700
Consultant A 1250
Consultant A 1200
HR A 1100
HR B 800
Receptionist B 750
Student B 200
HR B 700
Consultant A 900
Student B 300
HR A 1500
Consultant A 1300
Consultant B 800
Consultant A 1300
Receptionist B 780
Student B 250
Consultant B 950
HR A 1150
Consultant A 1275
我已经尝试了很多不同的方法来解决这个问题,包括使用ddply进行的一些非常早期的测试,但我也尝试过总结一下:
library(dplyr)
x %>%
group_by(Union, Position) %>%
summarise(Salary= quantile(Salary))
任何人都可以帮我吗?
编辑:几位用户在评论中帮助我找到了一个很好的解决方案,非常感谢你。我还有一个问题:
我还需要按相同的条件计算工资的平均值。
我尝试使用akrun提供的代码(在四分位数上工作得非常好),但是当我为平均值(x <- x %>% group_by(Union, Position) %>% do(data.frame(., as.list(mean(.$Salary))))
)执行此操作时,它为每个组提供了一个变量,而不是合并到一个变量中最后添加它。
有谁能告诉我某种方法来解决这个问题?