r - 如何使用 group_by 条件删除行。R
问题描述
我的数据集看起来像这样
Year id APV APS
2012 A Y N
2013 A NA NA
2014 A NA NA
2015 A NA NA
2016 A NA NA
2017 A NA NA
2018 A NA NA
2019 A NA NA
2012 B Y N
2013 B Y N
2014 B NA NA
2015 B NA NA
2016 B NA NA
2017 B NA NA
2018 B NA NA
2019 B NA NA
2012 C Y Y
2013 C Y Y
2014 C Y Y
2015 C Y Y
2016 C Y Y
2017 C Y Y
2018 C Y Y
2019 C Y Y
. . . .
. . . .
. . . .
如何删除 A 和 B 观察值?( 2014 & 2015 & 2016 & 2017 & 2018 & 2019 年的 APV和APS )NA
解决方案
如果要删除一个id
如果它具有2014 年到 2019 年之间NA
的所有值APV
和列。APS
library(dplyr)
df %>%
group_by(id) %>%
filter(!all(is.na(APV[between(Year, 2014, 2019)]) &
is.na(APS[between(Year, 2014, 2019)]))) %>%
ungroup
# Year id APV APS
# <int> <chr> <chr> <chr>
#1 2012 C Y Y
#2 2013 C Y Y
#3 2014 C Y Y
#4 2015 C Y Y
#5 2016 C Y Y
#6 2017 C Y Y
#7 2018 C Y Y
#8 2019 C Y Y
推荐阅读
- javascript - React + Leaflet - 图层的 Setstyle 正在绘制多个 CircleMarkers
- vue.js - 修改 useTaobaoRegistry 状态为 false
- c# - 在 VS2019 中添加引用时共享项目列表为空
- javascript - TypeORM 在批量保存时抛出重复错误,而不是忽略或更新现有值
- java - 我想创建非 Web Spring Boot 应用程序
- android - 在 SubscriptionClient 上调用 RegisterMessageHandler 时出现超时异常
- java - 尽管指定了相同名称和 XML 映射的字段,Dozer Mapper 仍不映射
- angular - 如何测试 HttpClient 请求
- ruby-on-rails - 即使我使用的是 shopify_app gem,添加新范围时仍缺少范围错误
- wso2 - WSO2 APIM 与 WSO2 EI 6.6、7.0 和 DSS