【发布时间】:2014-02-14 23:14:52
【问题描述】:
我有一个时间段(110 年),它被分为五天(5 天),所以我有 8030 个值。我想做的是为每个值分配对应的月份,例如所有期间的前 5 天对应的第一个值将分配给一月,依此类推。
chron 包可以做到这一点吗?
非常感谢
【问题讨论】:
-
请举例说明您的数据,并告诉我们您到目前为止所做的尝试。
标签: r
我有一个时间段(110 年),它被分为五天(5 天),所以我有 8030 个值。我想做的是为每个值分配对应的月份,例如所有期间的前 5 天对应的第一个值将分配给一月,依此类推。
chron 包可以做到这一点吗?
非常感谢
【问题讨论】:
标签: r
有很多方法可以取消日期的月份。我们以今天为例。
(x <- Sys.Date())
对于大多数日期和时间行为,lubridate 包应该是您的第一个停靠点。这有 month 功能,可以满足您的需求。
library(lubridate)
month(x)
## [1] 2
month(x, label = TRUE)
## [1] Feb
## Levels: Jan < Feb < Mar < Apr < May < Jun < Jul < Aug < Sep < Oct < Nov < Dec
month(x, label = TRUE, abbr = FALSE)
## [1] February
## 12 Levels: January < February < March < April < May < June < July < ... < December
chron 包有一个month.day.year 函数,用于检索日期的这三个组成部分。
month.day.year(x)
## $month
## [1] 2
##
## $day
## [1] 14
##
## $year
## [1] 2014
data.table 包也有一个month 函数。
library(data.table)
month(x)
## [1] 2
【讨论】:
as.POSIXlt(x)$mon + 1
body(data.table::month)。