使用groupby另一列填充缺少的日期
我想在数据帧DF中为每个bodlane包含缺少的日期 DF: 输出:使用groupby另一列填充缺少的日期,r,R,我想在数据帧DF中为每个bodlane包含缺少的日期 DF: 输出: Bodlane Day Holiday 185_AB1 2020-05-01 True 185_AB1 2020-05-02 NA 185_AB1 2020-05-03 NA 185_AB1
Bodlane Day Holiday
185_AB1 2020-05-01 True
185_AB1 2020-05-02 NA
185_AB1 2020-05-03 NA
185_AB1 2020-05-04 NA
185_AB1 2020-05-05 True
201_AB1 2020-05-02 True
201_AB1 2020-05-03 NA
201_AB1 2020-05-04 NA
201_AB1 2020-05-05 True
有人能帮我找到每个bodlane缺少的日期吗?tidyverse中的complete()
函数可以满足您的需要:
library(tidyverse)
df <- read_table("Bodlane Day Holiday
185_AB1 2020-05-01 True
185_AB1 2020-05-05 True
201_AB1 2020-05-02 True
201_AB1 2020-05-05 True")
df %>%
group_by(Bodlane) %>%
complete(Day = seq.Date(min(Day), max(Day), by = "d")) %>%
ungroup()
库(tidyverse)
df%
分组人(Bodlane)%>%
完成日期(天=连续日期(最短(天)、最长(天),按=“d”))%>%
解组()
给
Bodlane Day Holiday
<chr> <date> <lgl>
1 185_AB1 2020-05-01 TRUE
2 185_AB1 2020-05-02 NA
3 185_AB1 2020-05-03 NA
4 185_AB1 2020-05-04 NA
5 185_AB1 2020-05-05 TRUE
6 201_AB1 2020-05-02 TRUE
7 201_AB1 2020-05-03 NA
8 201_AB1 2020-05-04 NA
9 201_AB1 2020-05-05 TRUE
Bodlane日假期
1 185_AB1 2020-05-01正确
2 185_AB1 2020-05-02 NA
3 185_AB1 2020-05-03 NA
4 185_AB1 2020-05-04 NA
5 185_AB1 2020-05-05正确
6 201_AB1 2020-05-02正确
7 201_AB1 2020-05-03 NA
8 201_AB1 2020-05-04 NA
9 201_AB1 2020-05-05正确
这需要花费很多时间,因为我有数百万条记录。可以用更快的方式完成吗?我不是data.table
专家,但这可能会加快速度:
Bodlane Day Holiday
<chr> <date> <lgl>
1 185_AB1 2020-05-01 TRUE
2 185_AB1 2020-05-02 NA
3 185_AB1 2020-05-03 NA
4 185_AB1 2020-05-04 NA
5 185_AB1 2020-05-05 TRUE
6 201_AB1 2020-05-02 TRUE
7 201_AB1 2020-05-03 NA
8 201_AB1 2020-05-04 NA
9 201_AB1 2020-05-05 TRUE