【问题标题】:R; lubridate addition of months gives NA [duplicate]R; lubridate 添加月份给出 NA [重复]
【发布时间】:2021-07-25 19:30:42
【问题描述】:

我在 For 循环中计算日期。我结合了来自两个数据框的数据。标题 1 包含变量 A,标题 2 包含变量 B 和 C。 A 是数值变量,B 和 C 都是日期。

如果日期 B 在日期 C + 16 个月的间隔内,我想为变量 A 分配一个新变量。

我使用了以下内容:

if (B < C + months(16)) { Df1$A = A+1 }

对于某些日期,这不起作用。例如 10 月 30 日 + 16 个月 = 2 月 30 日。条件表达式失败,因为没有 true 或 fall 并且 for 循环停止。

如果特定日期(上例中的 2 月 30 日)不存在,有没有办法将 C + 月(16)更改为该月的最后一天?

【问题讨论】:

    标签: r date lubridate


    【解决方案1】:

    您可以使用%m+% 添加 16 个月。

    library(lubridate)
    ymd('2000-10-30') %m+% months(16)
    #[1] "2002-02-28"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-24
      • 2019-03-12
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多