相关疑难解决方法(0)

dplyr总结:等效".drop = FALSE"以保持组输出长度为零

当使用summarise具有plyrddply功能,空类别默认情况下删除.您可以通过添加更改此行为.drop = FALSE.然而,当使用这不起作用summarisedplyr.还有另一种方法可以在结果中保留空类别吗?

这是假数据的一个例子.

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 …
Run Code Online (Sandbox Code Playgroud)

r plyr dplyr tidyr

93
推荐指数
4
解决办法
3万
查看次数

标签 统计

dplyr ×1

plyr ×1

r ×1

tidyr ×1