r - 从数据框中提取特定日期不存在的行
问题描述
我有一个数据框:
Date Agent
2020-02-10 A
2020-02-11 A
2020-02-12 A
2020-02-13 A
2020-02-14 A
2020-02-10 B
2020-02-12 B
2020-02-10 C
2020-02-11 C
2020-02-14 C
我想获得一个数据框,其中包含从 2020 年 2 月 10 日到 2020 年 2 月 14 日某些日子不存在的那些行。所以想要的输出是:
Agent Days_absent
B 2020-02-11; 2020-02-13; 2020-02-14
C 2020-02-12; 2020-02-13
或者
Date Agent
2020-02-11 B
2020-02-13 B
2020-02-14 B
2020-02-12 C
2020-02-13 C
我怎么能这样做?
解决方案
reshape2::melt
这是使用and的一种相当简单的方法dplyr
:
library(dplyr)
library(reshape2)
melt(table(df$Date, df$Agent)) %>%
filter(value == 0) %>%
select(Date = Var1, Agent = Var2, -value)
#> Date Agent
#> 1 2020-02-11 B
#> 2 2020-02-13 B
#> 3 2020-02-14 B
#> 4 2020-02-12 C
#> 5 2020-02-13 C
数据
df <- structure(list(Date = structure(c(18302, 18303, 18304, 18305,
18306, 18302, 18304, 18302, 18303, 18306), class = "Date"), Agent = c("A",
"A", "A", "A", "A", "B", "B", "C", "C", "C")), row.names = c(NA,
-10L), class = "data.frame")
推荐阅读
- c++ - 如果是最新的,请采取行动
- php - Laravel/React - 在控制器中创建不同的 FormRequest 时“调用成员函数已验证()为 null”
- jenkins - 下面提到的语法在运行 Jenkins 管道时会做什么?agent [ label 'slave' ]
- python - 如何将值从一个数组推送到另一个数组,一个接一个的索引
- javascript - 动态更改 Javascript 项目中的 og 元标记以进行社交媒体共享
- swift - SwiftUI:更改 macOS 上的默认命令菜单
- reactjs - 令牌在 Reactjs 应用程序中无效
- javascript - D3.js 双摆奇怪行为
- c++ - 并行化for循环并合并线程私有变量
- java - Selenium:无法在 Linux 上找到浏览器二进制文件