dplyr - R 完成带有group_by和完整的列

  显示原文与译文双语对照的内容
69 0

我在使用 dplyr group_by 函数时遇到了一个小问题。完成这里操作后:

datasetALL %>% group_by(YEAR,Region) %>% summarise(count_number = n()) 

以下是结果:

YEAR Region count_number
<int> <int> <int>
1 1946 1 2
2 1946 2 3
3 1946 3 1
4 1946 5 1
5 1947 3 1
6 1947 4 1

我想要点类似的东西:

YEAR Region count_number
<int> <int> <int>
1 1946 1 2
2 1946 2 3
3 1946 3 1
4 1946 5 1
5 1946 4 0 #order is no important
6 1947 1 0
7 1947 2 0
8 1947 3 1
9 1947 4 1
10 1947 5 0

我尝试使用tidyr包中的complete(),但它没有成功。

时间:原作者:0个回答

68 5

使用tidyr包中的complete 应该可以工作。你可以在这里找到关于它的文档

可能发生的是你没有删除分组。然后,完成尝试在每个组中添加 YEARRegion的每个组合。但是所有这些组合已经在分组中。因此首先删除分组,然后完成。

datasetALL %>% 
 group_by(YEAR,Region) %>% 
 summarise(count_number = n()) %>%
 ungroup() %>%
 complete(Year, Region, fill = list(count_number = 1))
原作者:
...