R语言中无法通过group_by和arrange语句实现分组排序

求求各位R语言大神指点一下,我今天在进行分组排序的时候遇到了一个问题自己怎么都想不通。

我本意是想利用R里面的diamonds数据,找到cut(切割质量)中每组(共分为一般、良好、优质、非常好、理想5组)价格(数据集中为price变量)最贵的2颗钻石。

我首先写的代码是

diamonds %>% group_by(cut) %>% arrange(desc(price)) %>% slice(1:2)

得到了想要的结果,如下:

但是我无意中把slice(1:2)这个代码去掉,我发现输出的结果并没有按照cut先分组,然后再按照各组的price进行降序排列(结果如下),那为什么这个结果加上slice(1:2)的这个代码得到的结果就是分组排序后的各组前2颗钻石啊。

呜呜呜求各位大神解答一下这个困惑,我想好久想不通。

 

 

group_by表示对数据进行分组,需要和其他函数(如统计函数)连用,才能实现对数据的分组统计。

如果单独使用group_by,只是让数据处于分组状态,并不会对数据造成任何变化。

slice(1:2)表示取每个分组的1~2个记录,和group_by连用后就达到了想要的目的。

不止R语言,Python中的group by也有了类似的特点。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y