r - dplyr::count 省略未表示的级别
问题描述
有没有办法强制 dplyr::count 报告计数为零的级别?
>library(dplyr)
>df <- dplyr::data_frame(id = c(1,2,3,4,5,6), condition = c("A", "B","C", "A", "A", "B"))
>df$condition <- factor(df$condition, levels = c("A", "B", "C", "D", "E", "F", "G"))
这是我想要的输出:
>table(df$condition) %>% as_data_frame() %>% dplyr::rename(condition = Var1)
# A tibble: 7 x 2
condition n
<chr> <int>
1 A 3
2 B 2
3 C 1
4 D 0
5 E 0
6 F 0
7 G 0
但这就是我使用 count 得到的:
>df %>% dplyr::count(condition)
# A tibble: 3 x 2
condition n
<fct> <int>
1 A 3
2 B 2
3 C 1
谢谢 !
解决方案
您可以使用tidyr::complete
来完成缺失的因子水平;这也为您提供了指定如何填充的选项(默认为NA
)。
library(dplyr)
library(tidyr)
df %>% count(condition) %>% complete(condition, fill = list(n = 0))
## A tibble: 7 x 2
# condition n
# <fct> <dbl>
#1 A 3.
#2 B 2.
#3 C 1.
#4 D 0.
#5 E 0.
#6 F 0.
#7 G 0.
推荐阅读
- node.js - 使用 mongoosastic 在全文搜索中进行模糊搜索
- json - 单引号字符串中的 Powershell 变量扩展
- java - NullPointerException 没有行号的错误。如何在 Android Studio 中获取导致此错误的行号?
- microsoft-cognitive - 运行认知服务读取文本容器预览时出错
- visual-studio - Deploy/debug app from VS 2019 to windows 10 mobile phone via USB
- python - 带有 Sphinx Python 文档生成器错误的 Graphviz 图
- python - Flask Route REcorator 中有两个或多个变量?
- html - 如何将页脚与底部对齐
- c++ - 移动简单纹理时的 SDL2 常规抖动 - 即使在没有 vsync 的情况下以高 fps
- android-studio - 为什么我在 Fragment 中的 TabLayout 只能在第一次使用?