添加缺失的报告日期,不包括具有指定值的周末

Posted

技术标签:

【中文标题】添加缺失的报告日期,不包括具有指定值的周末【英文标题】:Add Missing Report Dates Excluding Weekends with Specified Values 【发布时间】:2018-05-10 19:21:40 【问题描述】:

我的表格中有很多报告空白(缺少报告日期)。我想通过将缺少的报告日期添加到每个帐户(由 ID 表示)来修复数据。

例如,我们将开始日期设置为 2014-07-01,将结束日期设置为 2018-03-13。总共有 970 个报告日期,不包括周末。

表格如下所示...我们称之为“df”。我原来的 df 是下面显示的数据框,没有以 GAP 开头的行。以 GAP 开头的行是我要添加的行。

对于第 1 步,我想将所有缺少的报告日期添加到此表中(下面以 GAP 开头的行),然后对于第 2 步,我想用 0 填写我从第 1 步添加的所有“余额” .而对于第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         ...

【问题讨论】:

寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。避免使用带有“...”的不可用示例,因为这很难测试。 【参考方案1】:

对于第 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 步,我需要可重现的数据。 如果你能给我们一个可重复的例子,那么帮助你会更容易、更快! :)

【讨论】:

以上是关于添加缺失的报告日期,不包括具有指定值的周末的主要内容,如果未能解决你的问题,请参考以下文章

将 pandas 列转换为 datetime64,包括缺失值

在数据框的选定列中包含 NA(缺失)值的行子集

报告 data.frame 中缺失值的优雅方式

Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙?

填补火花中日期缺失值的优雅方法

数据分析中缺失值的处理