r - r 使用 NA 过滤日期
问题描述
我正在处理这样的数据集
Id Col1 Date FromDate ToDate Weight
1 Blue 2018 NA NA 24.9
2 Green 2018 NA NA 14.5
3 Red 2010 2009-05-15 2015-09-15 87.5
3 Red 2010 2015-10-15 2020-08-15 43.8
4 Yellow 2020 2019-10-15 2021-05-15 29.5
5 Purple 2011 NA NA NA
我喜欢在 From 和 To Date 列中保留 NA 的行,因为没有什么可以比较 Date 列中的 Date 值和
如果 From 和 To Date 没有丢失,则仅保留 Date 值介于 From 和 To Date 之间的那些。
根据逻辑,预期的数据集将是这样的
Id Col1 Date FromDate ToDate Weight
1 Blue 2018 NA NA 24.9
2 Green 2018 NA NA 14.5
3 Red 2010 2009-05-15 2015-09-15 87.5
4 Yellow 2020 2019-10-15 2021-05-15 29.5
5 Purple 2011 NA NA NA
我知道我可以使用该filter
功能,但我不确定如何使其与未排除的 NA 值一起使用。任何建议都非常感谢。
解决方案
你应该可以这样做:
df <- tribble(
~Date, ~From, ~To,
2018, NA, NA,
2010, "2009-05-09", "2015-09-15"
)
df %>% filter(
# Condition 1
(is.na(From) & is.na(To)) |
# Condition 2
((Date > year(From))) &
(Date < year(To))))
)
推荐阅读
- android - 如何恢复android中已删除的文件?
- json - 如何在 ESP8266 上使用 ArduinoJson 创建嵌套 Json
- swift - 如何为视图控制器创建到嵌入在导航控制器中的另一个视图控制器的segue?
- php - Laravel 查找两个日期之间的记录
- neo4j - 使用neo4j-streams从Kafka将数据摄取到neo4j时如何添加标签?
- java - 如何处理 REST API 中的响应重定向?
- qt - 如何处理qt3d中的点击事件?
- wordpress - 是否可以将多站点主站点产品显示到子站点中?
- python - 试图将多个精灵调用到屏幕上会导致故障?
- javascript - 从其样式对象访问元素