繁体   English   中英

R中的星期几,月份,年份,星期几

[英]Day of the Week, Month, Year, Week of the Year in R

是否存在可用于数据框对象的内置函数,以在类Date时间序列上生成变量,以在R中创建星期,月,年,星期等的日期?

基本包中的weekdaysmonthsquarters ,函数生成文本输出,查找数字输出以表示2012年3月5日,例如,星期五,月的第3天,月的1周,以及一年中的63天等

你可以从POSIXlt获得一些奇怪的约定。 年份需要到1900年,月份在0到11之间 - 但你确实得到了工作日和一年中的一天。

R> dd <- as.Date("2012-05-03")
R> as.POSIXlt(dd)
[1] "2012-05-03 UTC"

然后

R> unclass(as.POSIXlt(dd))
$sec
[1] 0

$min
[1] 0

$hour
[1] 0

$mday
[1] 3

$mon
[1] 4

$year
[1] 112

$wday
[1] 4

$yday
[1] 123

$isdst
[1] 0

attr(,"tzone")
[1] "UTC"
R> 

您可以使用lubridate包来完成日期。

从帮助文件中: Lubridate提供的工具可以更轻松地解析和操作日期。

例如:

> library(lubridate)
> d <- today()
> d
[1] "2014-04-29"
> day(d)
[1] 29
> month(d)
[1] 4
> year(d)
[1] 2014
> week(d)
[1] 18
> weekdays(d)
[1] "Tuesday"
> days_in_month(d)
Apr 
 30 

我更喜欢内置函数,因为它有很多日期拼接,转换和算术函数。

我能想到几个选项。

首先,您可以使用类as.POSIXlt以便您可以使用df$date$yday as.POSIXlt子集。 as.POSIXlt()包含日期元素作为下面的列表,可以通过这种方式访问​​。

此外,包装lubridate具有类似的功能

yday(x)
wday(x)
mday(x)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM