从 chron 对象中提取月份时的警告消息
Warning message when extract months from chron object
我正在维护一些同时使用 lubridate 和 chron 包的代码,并且出现了一个新警告。
警告信息:
tz():不知道如何为 class dates/times 的对象计算时区;返回 "UTC"。此警告将成为 lubridate 的下一个主要版本中的错误。
从 chron 制作的对象中提取月份时会出现这种情况。
library(lubridate)
library(chron)
xdate <- structure(c(23831, 23832, 23833, 23834, 23835, 23836),
format = "d/m/y", origin = c(month = 1, day = 1, year = 1900), class = c("dates", "times"))
lubridate::month(xdate)
我可以通过将 xdate 包装在 as.Date 中来解决这个问题
lubridate::month(as.Date(xdate))
。产生的日期是正确的。这个方法可以吗?
编辑:我看到另一种解决方法是 chron::month.day.year(xdate)$month
我认为这没问题,但为了避免出现问题,最好不要为此使用 lubridate。 chron 有 months
和 monday.day.year
,我们还提供一些其他转换:
as.integer(months(xdate)) # uses chron:::months.default
## [1] 4 4 4 4 4 4
c(months(xdate))
## [1] 4 4 4 4 4 4
month.day.year(xdate)$month # uses chron::month.day.year
## [1] 4 4 4 4 4 4
as.integer(format(as.Date(xdate), "%m"))
## [1] 4 4 4 4 4 4
library(zoo)
cycle(as.yearmon(xdate))
## [1] 4 4 4 4 4 4
我正在维护一些同时使用 lubridate 和 chron 包的代码,并且出现了一个新警告。
警告信息: tz():不知道如何为 class dates/times 的对象计算时区;返回 "UTC"。此警告将成为 lubridate 的下一个主要版本中的错误。
从 chron 制作的对象中提取月份时会出现这种情况。
library(lubridate)
library(chron)
xdate <- structure(c(23831, 23832, 23833, 23834, 23835, 23836),
format = "d/m/y", origin = c(month = 1, day = 1, year = 1900), class = c("dates", "times"))
lubridate::month(xdate)
我可以通过将 xdate 包装在 as.Date 中来解决这个问题
lubridate::month(as.Date(xdate))
。产生的日期是正确的。这个方法可以吗?
编辑:我看到另一种解决方法是 chron::month.day.year(xdate)$month
我认为这没问题,但为了避免出现问题,最好不要为此使用 lubridate。 chron 有 months
和 monday.day.year
,我们还提供一些其他转换:
as.integer(months(xdate)) # uses chron:::months.default
## [1] 4 4 4 4 4 4
c(months(xdate))
## [1] 4 4 4 4 4 4
month.day.year(xdate)$month # uses chron::month.day.year
## [1] 4 4 4 4 4 4
as.integer(format(as.Date(xdate), "%m"))
## [1] 4 4 4 4 4 4
library(zoo)
cycle(as.yearmon(xdate))
## [1] 4 4 4 4 4 4