R:dplyr 仅在按多于一列分组时给出奇怪的数据结构
R: dplyr gives strange data structure only when grouping by more than one column
按几列分组并汇总 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
创建了一些额外的属性。如果我们不需要这些属性,那么 summarise
之后的 ungroup
是一个选项
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
按几列分组并汇总 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
创建了一些额外的属性。如果我们不需要这些属性,那么 summarise
之后的 ungroup
是一个选项
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