在 R 中使用库 lubridate 进行异常日期处理
Unusual date processing with library lubridate in R
我正在使用 R 处理日期并处理一项简单的任务。我的目标是使用当前日期并在 6 个月后检查日期。下面我粘贴了一段代码,它对日期产生不同的响应。感谢所有帮助。
library(lubridate)
first <- as.Date('2004-05-31')
class(first)
# [1] "Date"
first_next_6M <- first
month(first_next_6M) <- month(first_next_6M) + 6
first_next_6M
# [1] NA
second <- as.Date('2010-05-01')
second_next_6M <- second
class(second)
# [1] "Date"
month(second_next_6M) <- month(second_next_6M) + 6
second_next_6M
# [1] "2010-11-01"
如果您正在使用 lubridate 并希望获得距当前日期 6 个月的日期,您应该使用
first %m+% months(6)
如果你只是将 6 加到 2004-05-31
的月份值上,你会得到 2004-11-31
并且 11 月只有 30 天而不是 31 天,所以你不能只对月份进行算术运算
我正在使用 R 处理日期并处理一项简单的任务。我的目标是使用当前日期并在 6 个月后检查日期。下面我粘贴了一段代码,它对日期产生不同的响应。感谢所有帮助。
library(lubridate)
first <- as.Date('2004-05-31')
class(first)
# [1] "Date"
first_next_6M <- first
month(first_next_6M) <- month(first_next_6M) + 6
first_next_6M
# [1] NA
second <- as.Date('2010-05-01')
second_next_6M <- second
class(second)
# [1] "Date"
month(second_next_6M) <- month(second_next_6M) + 6
second_next_6M
# [1] "2010-11-01"
如果您正在使用 lubridate 并希望获得距当前日期 6 个月的日期,您应该使用
first %m+% months(6)
如果你只是将 6 加到 2004-05-31
的月份值上,你会得到 2004-11-31
并且 11 月只有 30 天而不是 31 天,所以你不能只对月份进行算术运算