r - 如何按日期分组以显示零和非零条目的计数?
问题描述
我有以下示例数据。我试图将它们分组在不同的日期,我需要新的列来告诉我有多少零条目和多少非零条目。
gantry_date gantry_duration
10/2/2018 126.809
10/2/2018 0
10/2/2018 38.505
10/2/2018 0
10/2/2018 63.888
10/2/2018 81.362
10/2/2018 45.055
10/1/2018 111.648
10/1/2018 0
10/1/2018 119.291
10/1/2018 0
10/1/2018 37.565
10/1/2018 33.794
10/1/2018 0
10/1/2018 0
10/1/2018 0
所需的输出是
Zero non-zero
10/1/2018 5 4
10/2/2019 2 5
我尝试了以下具有不同 XXXX 排列的代码。尝试过summary、count、sum 以及summary 和sum 或count 的组合。
data <- gantry1 %>% group_by(gantry_date) %>% XXXXX
无法获得所需的输出。
解决方案
你可以使用table
table(df$gantry_date, df$gantry_duration == 0)
# FALSE TRUE
# 10/1/2018 4 5
# 10/2/2018 5 2
如果您想要确切的名称,也许我们可以添加一个新列
df$status <- c("zero", "non-zero")[(df$gantry_duration != 0) + 1]
table(df$gantry_date, df$status)
# non-zero zero
# 10/1/2018 4 5
# 10/2/2018 5 2
一种tidyverse
方法是
library(dplyr)
df %>%
mutate(status = c("zero", "non-zero")[(gantry_duration != 0) + 1]) %>%
count(gantry_date, status) %>%
tidyr::pivot_wider(names_from = status, values_from = n)
推荐阅读
- database - Drawio 上的紧凑实体关系
- azure - 使用 powershell 重启云服务
- csv - 将列表字典转换为csv
- python - 如何将数据框的时间戳设置为当月的第一天
- python - 使用 SQLAlchemy 将表元数据从 sqlserver 传输到 postgresql
- caching - 在堆栈中的哪个位置可以最好地将分析数据仓库数据与从第三方 API 抓取+缓存的数据合并?
- html - 从 8 升级到 Angular 12 后的 CSS 问题
- azure - 使用服务主体从 DevOps 管道调用 Databricks API
- c# - 填写自定义类型列表中的空白
- python - 单击 matplotlib 散点图点以显示基于点元数据的另一个图形?