我有一个如下所示的表格
我想要做的是在 2021 年 3 月 1 日的日期为 key A 插入一个指标为 0 的行,因为 key A 已经在 2 月的 1 月出现。
另一方面,键 B 最好保持不变,因为它具有与其出现后的每个日期相关的指标。 (我正在使用的表格恰好是每月的,但我确信我可以进行更改以使每日解决方案在这里发挥作用)
所以,理想情况下我们最终会得到一个如下所示的表格
我认为这可能更适合 SQL,但想尝试 R ——我应该沿着某个循环的路径检查每个键的第一个日期,检查它是否有以下条目日期,如果没有则添加?感觉这很快就会变得相当笨重。
暂时就这些,谢谢大家
最佳答案
分组后我们可以使用complete
:
library(lubridate) # formatting date
library(dplyr)
df %>%
mutate(Date = as.Date(ydm(Date))) %>% # you don't need this if your date is in correct format
group_by(Key) %>%
complete(Date = seq(min(Date), max(Date), by = "1 day"),
fill = list(Metric = 0))
Key Date Metric
<chr> <date> <dbl>
1 A 2021-01-01 6
2 A 2021-01-02 3
3 A 2021-01-03 0
4 A 2021-01-04 0
5 A 2021-01-05 3
6 B 2021-01-03 4
7 B 2021-01-04 1
8 B 2021-01-05 2
关于r - 在某个键首次出现后,为当前没有数据的日期创建 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69654335/