summarise
with plyr
의 ddply
함수를 사용하면 기본적으로 빈 카테고리가 삭제됩니다. 을 추가하여이 동작을 변경할 수 있습니다 .drop = FALSE
. 그러나 .NET summarise
과 함께 사용할 때는 작동하지 않습니다 dplyr
. 결과에서 빈 범주를 유지하는 다른 방법이 있습니까?
다음은 가짜 데이터가있는 예입니다.
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
내가 바랬던 것과는 다릅니다. dplyr
에서와 같은 결과를 얻을 수 있는 방법 .drop=FALSE
이 plyr
있습니까?