r - 在数字列名称上过滤非 NA
问题描述
我正在尝试使用as.Date
变量过滤包含数字/日期名称的列。
例如,考虑这个小型数据库:
dt <- data.table(
names = c("A", "B", "C"),
`2020-01-01` = c(1, NA, 2),
`2020-01-02` = c(3, 4, 5),
`2020-01-03` = c(6, 7, 8)
)
我目前正在过滤所需的日期列,如下所示:
dt1 <- dt %>% filter(!is.na(`2020-01-01`)) %>% select(names)
我的想法是创建一个meeting_date
变量,这个变量应该用作我所有 R 代码的日期参考。
meeting_date <- as.Date("2020-01-01")
但当然是代码:
dt1 <- dt %>% filter(!is.na(meeting_date)) %>% select(names)
不工作。原因是缺少反引号,所以我尝试了以下代码但没有成功:
dt1 <- dt %>% filter(!is.na(paste("`", meeting_date, "`", sep=""))) %>% select(names)
dt1 <- dt %>% filter(!is.na(noquote(paste("`", meeting_date, "`", sep="")))) %>% select(names)
有谁知道如何进行?谢谢!
解决方案
你可以做:
meeting_date <- as.Date("2020-01-01")
dt %>%
filter_at(vars(one_of(as.character(meeting_date))), ~ !is.na(.))
names 2020-01-01 2020-01-02 2020-01-03
1 A 1 3 6
2 C 2 5 8
推荐阅读
- c# - 创建应用程序用户时如何修复“用户 ID 无效”?
- jsf - 值自动完成
- amazon-web-services - 为什么目标组附件不像卷附件那样工作
- django - 将 Django 模型迁移到 Postgresql 模式
- javascript - 如何将对象的结构转换为另一个结构?JavaScript
- python - python set 不删除重复项...为什么?
- .net - 将 NCache 应用于现有项目(使用 CacheDependency)
- java - Spring Hibernate - 查找与另一个实体的字段匹配的实体
- java - 如何为 HTTP 请求插件使用动态请求正文
- html - 为什么不显示背景颜色:(