【发布时间】:2017-09-05 02:04:33
【问题描述】:
我试图了解group_by 函数在dplyr 中的工作方式。我正在使用 datasets 包 link 附带的 airquality 数据集。
我知道如果我执行以下操作,它应该按照Temp变量的升序排列记录
airquality_max1 <- airquality %>% arrange(Temp)
我看到airquality_max1 就是这种情况。我现在想通过增加Temp 的顺序排列记录,但按Month 分组。所以最终结果应该首先包含Month == 5 的所有记录,按Temp 的递增顺序排列。那么它应该有Month == 6的所有记录以Temp的递增顺序等等,所以我使用以下命令
airquality_max2 <- airquality %>% group_by(Month) %>% arrange(Temp)
但是,我发现结果仍然仅按Temp 的递增顺序排列,而不是按Month 分组,即airquality_max1 和airquality_max2 是相等的。
我不确定为什么 Month 分组不会在 arrange 函数之前发生。谁能帮我理解我在这里做错了什么?
除了尝试按列对数据框进行排序的问题之外,我还试图了解group_by 的行为,因为我试图用它来向某人解释group_by 的应用。
【问题讨论】:
-
也许你还需要在
arrange中添加Month参数。airquality_max2 <- airquality %>% arrange(Month, Temp) -
排序不是聚合,所以不用
group_by... -
我试图用这个作为一个迂腐的例子来展示
group_by的应用,但偶然发现了这种行为。