我直观地期望使用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
答案 0 :(得分:2)
区别在于1/N
返回group_by %>% do
,而rowwise_df
返回group_by %>% count
,并且仅对于grouped_df
,rowwise_df
删除ungroup
类属性,并保持其他与行相关的属性不变,另请参见以下More About:
rowwise_df