Khi sử dụng summarisevới plyr's ddplychức năng, danh mục sản phẩm nào được giảm theo mặc định. Bạn có thể thay đổi hành vi này bằng cách thêm .drop = FALSE. Tuy nhiên, điều này không hoạt động khi sử dụng summarisevới dplyr. Có cách nào khác để giữ các danh mục trống trong kết quả không?
Đây là một ví dụ với dữ liệu giả.
library(dplyr)
df = data.frame(a=rep(1:3,4), b=rep(1:2,6))
# Now add an extra level to df$b that has no corresponding value in df$a
df$b = factor(df$b, levels=1:3)
# Summarise with plyr, keeping categories with a count of zero
plyr::ddply(df, "b", summarise, count_a=length(a), .drop=FALSE)
b count_a
1 1 6
2 2 6
3 3 0
# Now try it with dplyr
df %.%
group_by(b) %.%
summarise(count_a=length(a), .drop=FALSE)
b count_a .drop
1 1 6 FALSE
2 2 6 FALSE
Không chính xác những gì tôi đã hy vọng. Có dplyrphương pháp nào để đạt được kết quả tương tự như .drop=FALSEtrong plyrkhông?