【发布时间】:2019-01-23 17:36:50
【问题描述】:
我直观地预计使用ungroup() 函数会删除'vars' 属性。有时会,有时不会。规则是什么?我正在尝试了解分组/取消分组的内部原理。
考虑以下两个示例(在 R 3.4.4 上使用 dplyr 0.7.4)。在第一个中,保留了“vars”属性。在第二个它被丢弃。
#Example 1
models <- mtcars %>% group_by(cyl) %>% do(mod = lm(mpg ~ disp, data = .))
%>% ungroup()
attributes(models)
$row.names [1] 1 2 3
$vars [1] "cyl"
$drop [1] 是的
$names [1] "cyl" "mod"
$class [1] "tbl_df" "tbl" "data.frame"
#Example 2
attributes(mtcars %>% group_by(cyl) %>% count() %>% ungroup())
$class [1] "tbl_df" "tbl" "data.frame"
$names [1] "cyl" "n"
$row.names [1] 1 2 3
【问题讨论】: