R:dplyr 仅在按多列分组时才给出奇怪的数据结构

HOSS_JFL

当按几列分组并汇总 dplyr 的几列时,我得到了一个奇怪的数据结构。数据框很大,结果数据结构的怪异更重要,但下面创建了一个小版本的问题。

一切安好:

library(dplyr)
df <- data.frame(A = c(1,1,2,2), B = c(1,1,2,2), C = c(10,20,30,40), D = c(1000,2000,3000,4000))
df %>% group_by(A) %>% summarize(C = sum(C),D = sum(D)) %>% str()
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':       2 obs. of  3 variables:
 $ A: num  1 2
 $ C: num  30 70
 $ D: num  3000 7000

这是什么?

df %>% group_by(A,B) %>% summarize(C = sum(C),D = sum(D)) %>% str()
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 2 obs. of  4 variables:
 $ A: num  1 2
 $ B: num  1 2
 $ C: num  30 70
 $ D: num  3000 7000
 - attr(*, "vars")=List of 1
  ..$ : symbol A
 - attr(*, "drop")= logi TRUE
阿克伦

group_by产生一些附加属性。如果我们不需要这些属性,那么ungroupaftersummarise是一种选择

df %>% 
   group_by(A, B) %>%
   summarize(C = sum(C),D = sum(D)) %>%
   ungroup() %>%
   str()
#Classes ‘tbl_df’, ‘tbl’ and 'data.frame':       2 obs. of  4 variables:
# $ A: num  1 2
# $ B: num  1 2
# $ C: num  30 70
# $ D: num  3000 7000

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章