如何解决R; lubridate 添加数月给出 NA
我在 For 循环中计算日期。我结合了来自两个数据帧的数据。 Tibble 1 包含变量 A,tibble 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+months(16) 更改为该月的最后一天?
解决方法
您可以使用 %m+%
添加 16 个月。
library(lubridate)
ymd('2000-10-30') %m+% months(16)
#[1] "2002-02-28"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。