【问题标题】:Fill in missing dates in a dataframe在数据框中填写缺失的日期
【发布时间】:2021-05-23 09:21:42
【问题描述】:

我有两个数据框,利率和每月标准差价格回报,我已设法将它们合并在一起。然而,利率数据在市场不开放的日期(即周末和节假日)存在缺口。每月的回报都是从当月的第一天开始的,所以当这与市场关闭一致时,数据不会正确合并。数据框的一个例子是

Date        Rollingstd
01/11/2014  0.00925
01/10/2014  0.01341

Date        InterestRate
03/11/2014  2
31/10/2014  1.5

如您所见,利率数据中没有 2014 年 1 月 11 日,所以合并在一起给了我

Date        InterestRate  Rollingstd
03/11/2014  2             0.01341
31/10/2014  1.5           0.01341

我想解决这个问题的方法是扩展利率数据框,使其包含所有日期,然后填写利率数据,使其看起来像这样

Date        InterestRate
03/11/2014  2
02/11/2014  1.5
01/11/2014  1.5
31/10/2014  1.5

这将确保数据框中没有丢失的日期。关于如何做到这一点的任何想法?

【问题讨论】:

  • 您能解释一下您想要的输出是什么样的吗?这是您发布的最后一个数据集吗?
  • Yes Anoushiravan 最后一个是所需的输出。但是,如果您向下滚动,您会看到我想出了答案并自己发布了
  • 我想我没有完全理解你想要的输出。但是,如果您打算用缺少的日期填充 Date 列,您可以使用亲爱的 @Anil Goyal 的非常好的解决方案。

标签: r


【解决方案1】:

你想要这个吗?

df2 <- read.table(text = 'Date        InterestRate
03/11/2014  2
31/10/2014  1.5', header = T)

df1 <- read.table(text = 'Date        Rollingstd
01/11/2014  0.00925
01/10/2014  0.01341', header = T)

library(tidyverse)

df1 %>% full_join(df2, by = 'Date') %>%
  mutate(Date = as.Date(Date, '%d/%m/%Y')) %>%
  arrange(Date) %>%
  complete(Date = seq.Date(min(Date), max(Date), 'days')) %>%
  fill(InterestRate, .direction = 'up') %>%
  as.data.frame()

#>          Date Rollingstd InterestRate
#> 1  2014-10-01    0.01341          1.5
#> 2  2014-10-02         NA          1.5
#> 3  2014-10-03         NA          1.5
#> 4  2014-10-04         NA          1.5
#> 5  2014-10-05         NA          1.5
#> 6  2014-10-06         NA          1.5
#> 7  2014-10-07         NA          1.5
#> 8  2014-10-08         NA          1.5
#> 9  2014-10-09         NA          1.5
#> 10 2014-10-10         NA          1.5
#> 11 2014-10-11         NA          1.5
#> 12 2014-10-12         NA          1.5
#> 13 2014-10-13         NA          1.5
#> 14 2014-10-14         NA          1.5
#> 15 2014-10-15         NA          1.5
#> 16 2014-10-16         NA          1.5
#> 17 2014-10-17         NA          1.5
#> 18 2014-10-18         NA          1.5
#> 19 2014-10-19         NA          1.5
#> 20 2014-10-20         NA          1.5
#> 21 2014-10-21         NA          1.5
#> 22 2014-10-22         NA          1.5
#> 23 2014-10-23         NA          1.5
#> 24 2014-10-24         NA          1.5
#> 25 2014-10-25         NA          1.5
#> 26 2014-10-26         NA          1.5
#> 27 2014-10-27         NA          1.5
#> 28 2014-10-28         NA          1.5
#> 29 2014-10-29         NA          1.5
#> 30 2014-10-30         NA          1.5
#> 31 2014-10-31         NA          1.5
#> 32 2014-11-01    0.00925          2.0
#> 33 2014-11-02         NA          2.0
#> 34 2014-11-03         NA          2.0

reprex package (v2.0.0) 于 2021-05-23 创建

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 2021-06-17
    • 2018-10-05
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多