我有一张包含大量报告空白的表(缺少报告日期)。我想通过将缺少的报告日期添加到每个帐户(由ID表示)来修复数据。
例如,我们将开始日期设置为2014-07-01,将结束日期设置为2018-03-13。报告日期共计970个,不包括周末。
下表如下......让我们称之为" df"。我的原始df是下面显示的数据框,没有以GAP开头的行。以GAP开头的行是我想要添加的行。
对于第1步,我想将所有缺少的报告日期添加到此表中(以下面的GAP开头的行),然后对于第2步,我想填写所有"余额"我从步骤1添加了0。对于第3步,我想用间隙之前的最后一个值填充其他变量。最后一步,我想将它应用于所有ID。
ID report_date balance other_v1 other_v2
DAY 1 1 7/1/2014 1500 0
DAY 2 1 7/2/2014 1500 0.1
GAP 1 (DAY 3) 1 7/3/2014 0 0.1
GAP 2 (DAY 4) 1 ... 0 0.1
... 1 ... 0... 0.1..
GAP 30 (DAY 32) 1 8/10/2014 0 0.1
DAY 33 1 8/11/2014 1500 0.3
DAY 34 1 8/12/2014 1600 0.3
DAY 35 1 8/13/2014 1600 0.25
GAP 31 (DAY 36) 1 8/14/2014 0 0.25
GAP 32 (DAY 37) 1 8/15/2014 0 0.25
... 1 ... 0 ...
DAY 970 (OR GAP N) 1 3/13/2018 0 ...
答案 0 :(得分:0)
对于第1步,可以创建一个包含所需值的新数据库,如下所示:
df = data.frame(as.Date("07/01/2014", "%m/%d/%Y"):as.Date("03/13/2018", "%m/%d/%Y"))
names(df) = "date"
df$date = as.Date(df$date, origin = '1970-01-01')
df$weekday = weekdays.Date(df$date)
df = df[-which(df$weekday=="saturday"),]
df = df[-which(df$weekday=="sunday"),]
然后你只需要使用cbind(your_db, df)
,你就有了你的日期栏!
对于步骤2和3,我需要可重复的数据..
如果你能给我们一个可重复的例子,它会更容易,更快地帮助你! :)