当我使用complete()函数填充我的数据中没有任何情况的行时,我发现它也创建了许多重复的行。可以使用unique()函数删除它们,但我想了解如何避免首先生成所有这些额外的行。
library(dplyr)
library(tidyr)
# An incomplete table
mtcars %>%
group_by(vs, cyl) %>%
count()
# complete() creates a table with many duplicate rows
temp <-
mtcars %>%
group_by(vs, cyl) %>%
count() %>%
complete(vs = c(0, 1), cyl = c(4, 6, 8), fill = list(n = 0))
unique(temp)
答案 0 :(得分:5)
这在@aosmith的评论中得到回答。
重复项来自分组的数据。使用ungroup
取消分组可以解决以下问题:
temp <-
mtcars %>%
group_by(vs, cyl) %>%
count() %>%
ungroup() %>%
complete(vs = c(0, 1), cyl = c(4, 6, 8), fill = list(n = 0))