chr创建动态日期对象时出现的NA

new9mtju  于 2023-02-01  发布在  其他
关注(0)|答案(3)|浏览(118)

我有一个非常间歇性的问题时,创建一些动态日期对象。

library(lubridate)
day <- as.Date(Sys.time())
this_m <- format(day,"%m")
next_m <- format(day + months(1), "%m")
m_after <- format(day + months(2), "%m")

由于某种原因,next_m对象提供了一个被认为是'chr NA'的对象,而m_after对象提供了正确的值(到今天为止,是一个字符对象“03”)。这对我来说似乎很奇怪,有人知道这是为什么吗?
编辑:理想情况下,我会创建一个对象,其中包含月份的两位数字版本,例如,March是03而不是3

wj8zmpe1

wj8zmpe11#

使用lubridate术语

library(lubridate)

day <- today()
this_m  <- month(day)
next_m  <- month(day %m+% months(1))
m_after <- month(day %m+% months(2))
jslywgbw

jslywgbw2#

你需要创建一个字符向量来保持前导0

month_with_leading_0 <- ifelse(test=seq(12)<10, 
                               yes=paste0("0", month(day)+months(seq(12)-1)@month), 
                               no=month(day)+months(seq(12)-1)@month)
cbwuti44

cbwuti443#

因此,我能够修复以下操作:

next_m  <- month(day %m+% months(1), "%m")
m_after <- month(day %m+% months(2), "%m")

相关问题