【发布时间】:2019-10-28 12:17:14
【问题描述】:
我有一个像下面的DF这样的数据框,它将直接从数据库中导入(作为tibble)。
library(tidyverse)
library(lubridate)
date_until <- dmy("31.05.2019")
date_val <- dmy("30.06.2018")
DF <- data.frame( date_bal = as.Date(c("2018-04-30", "2018-05-31", "2018-06-30", "2018-05-31", "2018-06-30")),
department = c("A","A","A","B","B"),
amount = c(10,20,30,40,50)
)
DF <- DF %>%
as_tibble()
DF
它表示每个部门在特定月份中花费的金额。我的任务是预测每个部门在接下来的几个月中将花费多少钱,直到未来的某个特定日期(在本例中为 date_until=31.05.2019)
我想使用 tidyverse 为每个部门生成额外的行,其中第一列 date_bal 将是从“原始”DF 的最后一个日期到预定义的 date_until 的一系列日期。然后我想添加一个名为“DIFF”的附加列,它表示 DATE_BAL 和 DATE_VAL 之间的差异,其中 DATE_VAL 也是预定义的。我的最终结果如下所示: Final result
我已经设法通过以下方式做到这一点:
- 首先过滤来自部门 A 的 DF 数据
- 通过使用从 min(dat_bal) 到 date_until 从 1 的日期序列填充它来创建另一个 DF2。
- 合并来自 1. 和 2. 的数据帧,然后使用 mutate 添加计算列
由于我将不得不为许多部门重复此过程,我想知道是否可以在现有 DF 中添加行(创建日期序列)(无需创建第二个 DF 然后合并)。
提前感谢您的帮助和时间。
【问题讨论】: