我将尝试根据每个组中的最小值和最大值向数据框添加行,假设这是我的原始数据框:
df = data.frame(Date = as.Date(c("2017-12-01", "2018-01-01", "2017-12-01", "2018-01-01", "2018-02-01","2017-12-01", "2018-02-01")),
Group = c(1,1,2,2,2,3,3),
Value = c(100, 200, 150, 125, 200, 150, 175))
请注意,第一组有2个连续日期,第二组有3个连续日期,第三组缺少中间的日期(2018-01-01)。我希望能够通过添加缺失的日期行来完成数据框。但问题是,我只想根据每个组内最小和最大日期之间缺失的日期来添加额外的日期。因此,如果我要完成这个数据框,它将如下所示:
df_complete = data.frame(Date = as.Date(c("2017-12-01", "2018-01-01", "2017-12-01", "2018-01-01", "2018-02-01","2017-12-01","2018-01-01", "2018-02-01")),
Group = c(1,1,2,2,2,3,3,3),
Value = c(100, 200, 150, 125, 200, 150,NA, 175))
因为第三组缺少一个日期,所以只添加了一行。对于第一组来说,没有添加任何日期,因为它的最小日期(2017-12-01)和最大日期(2018-01-01)之间已经包含了所有日期。
complete()
操作会针对每个组的每个因子/时间组合生成一个tibble行。 - 0range