r - 基于组的行长度对分组变量进行条件过滤
问题描述
一个我无法理解的简单查询:
样本数据集:
ACH_DATE CODE
1 31OCT2018 A81001
2 31JAN2019 A81001
3 31OCT2018 A81002
4 31JAN2019 A81002
5 31OCT2018 A81003
6 31JAN2019 A81004
我想group_by
在CODE
变量上过滤ACH_DATE
,如果一个组有不止一行,则删除其中的行ACH_DATE == "31OCT2018"
。
样本数据:
df <- structure(list(ACH_DATE = c("31OCT2018", "31JAN2019", "31OCT2018",
"31JAN2019", "31OCT2018", "31JAN2019"), CODE = c("A81001", "A81001",
"A81002", "A81002", "A81003", "A81004")), row.names = c(NA, 6L
), class = "data.frame")
解决方案
我们按“CODE”分组,创建一个包含行数和“ACH_DATE”的逻辑向量
library(dplyr)
df %>%
group_by(CODE) %>%
filter((n() > 1 & ACH_DATE != "31OCT2018") | n() == 1)
推荐阅读
- embedded - 如何在 EFR32 上为 SI7021 图提供带有标志的 I2C 功能
- python - 理解值如何在 Python 中的合并排序中存储和传递的概念的问题
- pdf - 没有使用 Microsoft Graph API 调用将 Power Point 转换为 PDF
- c++ - 哪个是查找和插入的最佳容器?
- github - 如何在开源我的应用程序的同时仍然保持对这个应用程序正式版本发布过程的完全控制?
- android - Angular 8 和 Cordova - ngx-youtube-player 无法在 Android 上运行
- javascript - 尝试一次添加一个字母以在 React 中声明
- c++ - 以下代码的 DD(Decision to Decision)路径图是什么?
- javascript - 在jQuery中添加属性do images
- testing - 有没有办法控制 cassandra-stress 的值集?