R语言group_by()下summarize()函数输出message
group_by()下使用summarize()函数输出如下message,意思是说summarize()的输出未分组。
帮助文档
查看summarize()
的帮助,发现确实有一个参数.groups
,原文如下:
根据summarize的参数提示,可以看到.groups
参数控制结果的分组结构,有四个可选的取值:"drop_last"时去掉最后一个分组变量;"drop"时去掉所有分组水平,此时没有组属性;"keep"时保持与.data
相同的分组结构; "rowwise"每一行自成一组。
当未指定.groups
参数时,会根据结果的行数自动选择,如果输出结果大小为1,就自动设定为"drop_last"; 如果输出结果大小不一,就自动设定为"keep".
分析
简单来说,如果参数.groups
没有设定,R就会输出这样一条message来提醒你对.groups
进行设定。我们需要告诉R,输出结果要如何设定组,否则R就会自动更改输出结果的组属性,然后给你一条message告诉你我已经改了。这条message其实就是提醒我们group_by()
下的summarize()
输出其实还有具有“group”属性。不过这条message不影响结果的输出,主要起一个提醒的作用。
下面来做一个实验,取不同的.groups
,更清楚地对比结果的异同。
(1) 不指定.groups
> trans_loan_lab %>% group_by(label) %>%
+ summarise(rmean = mean(rInternal),
+ fmean = mean(frequency),
+ mmean = mean(monetary))
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 8 x 4
label rmean fmean mmean
<chr> <dbl> <dbl> <dbl>
1 一般保持客户 -26 9 102599
2 一般发展客户 -16.9 5.78 67715.
3 一般价值客户 -15.0 10.1 64330.
4 一般挽留客户 -85.4 2.48