四分位数表示R中的多个组

时间:2017-10-30 12:54:25

标签: r dplyr plyr

我必须计算四分位数,但我需要按两种不同的条件对数据进行分组。首先,我需要将他们按照他们在公司中所处的位置进行分组,但是我还需要根据他们所属的工会对它们进行分组。以下是我的数据示例:

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)))))执行此操作时,它为每个组提供了一个变量,而不是合并到一个变量中最后添加它。

有谁能告诉我某种方法来解决这个问题?

0 个答案:

没有答案