Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用groupby另一列填充缺少的日期_R - Fatal编程技术网

使用groupby另一列填充缺少的日期

使用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

我想在数据帧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                     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