r - 统计 ABC 的 XXXX 后查询日期的所有条目必须除以它们的用途,groupby() 和数据的详细信息
问题描述
我打算列出在查询 ABC 后查询的每个 ID 的所有用途(其中 XXXX 表示其他公司)。样本表如下:
ID Company INQUIRY-DATE Purpose
A15217177635833 XXXX 25-08-2018 X
A15217177635833 ABC 28-06-2018 Y
A15217177635833 XXXX 05-05-2018 Z
A15217177635833 XXXX 28-05-2019 A
F15039820795577 ABC 22-08-2017 X
F15039820795577 XXXX 15-06-2017 Y
F15039820795577 XXXX 15-08-2018 Z
F15039820795577 XXXX 25-08-2018 Z
F15039820795577 XXXX 15-08-2018 A
预期输出:
ID Count_Z Count_A
A15217177635833 1 1
F15039820795577 2 1
即 ABC 的 XXXX 后查询日期的所有条目的计数必须除以它们的用途。我尝试使用 group by 和 mutate(count_z) 但没有运气。
我不确定如何在分组后获取详细数据,因为据我所知,分组是与摘要一起使用的。
解决方案
我们首先转换INQUIRY-DATE
为日期对象,每个组arrange
的数据只选择第一次出现之后的那些行,计算每个,然后以宽格式传播数据。ID
INQUIRY-DATE
"ABC"
Purpose
library(dplyr)
df %>%
mutate(`INQUIRY-DATE` = as.Date(`INQUIRY-DATE`, "%d-%m-%Y")) %>%
arrange(ID, `INQUIRY-DATE`) %>%
group_by(ID) %>%
filter(Company != "ABC" & row_number() > match("ABC", Company)) %>%
count(ID, Purpose) %>%
tidyr::pivot_wider(names_from = Purpose, values_from = n,
values_fill = list(n = 0))
# ID A X Z
# <fct> <int> <int> <int>
#1 A15217177635833 1 1 0
#2 F15039820795577 1 0 2
数据
df <- structure(list(ID = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L), .Label = c("A15217177635833", "F15039820795577"), class = "factor"),
Company = structure(c(2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L), .Label = c("ABC",
"XXXX"), class = "factor"), `INQUIRY-DATE` = structure(c(5L,
7L, 1L, 6L, 4L, 2L, 3L, 5L, 3L), .Label = c("05-05-2018",
"15-06-2017", "15-08-2018", "22-08-2017", "25-08-2018", "28-05-2019",
"28-06-2018"), class = "factor"), Purpose = structure(c(2L,
3L, 4L, 1L, 2L, 3L, 4L, 4L, 1L), .Label = c("A", "X", "Y",
"Z"), class = "factor")), class = "data.frame", row.names = c(NA, -9L))
推荐阅读
- node.js - 使用 s3 api 删除 gcp 存储桶对象
- python - 以子列表中的每个项目为键的列表列表
- azure-functions - Visual Studio 中的 Azure Functions - 记录文件的路径?
- python - AttributeError:模块“tensorflow.python.training.experimental.mixed_precision”没有属性“_register_wrapper_optimizer_cls”
- c# - 在 node.js 中解码signedcms
- flutter - 为弹出菜单按钮颤动添加边距
- html - 将图标与文本大小对齐
- javascript - 将分叉存储库作为 react.js 依赖项导入时出错
- mysql - MYSQL concat char 使用 select 创建表名
- amazon-s3 - 有没有办法在使用 aws cloudformiohn deploy 进行部署时在 S3 Bucket 中指向 cloudformation 模板