使用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 :(得分:7)
使用tidyr包中的complete
应该有效。您可以找到有关它的文档here。
可能发生的是你没有删除分组。然后,完成尝试在每个组中添加YEAR
和Region
的每个组合。但所有这些组合已经在分组中。因此,首先删除分组,然后完成。
datasetALL %>%
group_by(YEAR,Region) %>%
summarise(count_number = n()) %>%
ungroup() %>%
complete(Year, Region, fill = list(count_number = 1))
答案 1 :(得分:0)
已经提到过,但是您可以通过使用tidyr
和其中的参数nesting
来整体解决此问题:
complete(df, YEAR, nesting(Region), fill = list(count_number = 0))
YEAR Region count_number
<int> <int> <dbl>
1 1946 1 2
2 1946 2 3
3 1946 3 1
4 1946 4 0
5 1946 5 1
6 1947 1 0
7 1947 2 0
8 1947 3 1
9 1947 4 1
10 1947 5 0