r - dplyr 的 ungroup() 函数何时删除 'vars' 属性?
问题描述
我直观地期望使用该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] “圆柱”
$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
解决方案
不同之处在于return group_by %>% do
a rowwise_df
whilegroup_by %>% count
返回 agrouped_df
和 for rowwise_df
,ungroup
仅删除rowwise_df
类属性并保持其他与行相关的属性不变,另请参阅如何在 dplyr 中停止使用 rowwise:
mtcars %>% group_by(cyl) %>% do(mod = lm(mpg ~ disp, data = .)) %>% class()
# [1] "rowwise_df" "tbl_df" "tbl" "data.frame"
mtcars %>% group_by(cyl) %>% count() %>% class()
# [1] "grouped_df" "tbl_df" "tbl" "data.frame"
推荐阅读
- pyspark - pyspark - 使用 FAILFAST 选项加载失败后捕获格式错误的 JSON 文件名
- html - 如何将 div 包裹在主菜单 li 周围?
- c++ - C++ 编译器在使用 Bool Wrapper 类时报告不明确的函数调用
- vba - Access 2016 - VBA - Filling an Empty Field/Column with Data Based on the Value Within an Adjacent (same row) Cell
- cmake - cmake 3.10 无法内部测试 blas 库
- r - R caret :重新组合几个火车对象
- ruby-on-rails - 如何在 Heroku 中使用 SSL 设置域
- javascript - Vue.js 事件目标为空?
- php - 身份验证错误 Symfony 4 登录系统
- php - Cakephp:将字符串变量下载为文件