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

时间:2013-12-09 00:17:15

标签: r

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

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

3 个答案:

答案 0 :(得分:4)

你可以从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> 

答案 1 :(得分:2)

我可以想到几个选项。

首先,您可以使用课程as.POSIXlt,以便您可以使用df$date$yday之类的内容进行分组。 as.POSIXlt()包含日期元素,下面的列表可以通过这种方式访问​​。

此外,包lubridate具有

等功能
yday(x)
wday(x)
mday(x)

答案 2 :(得分:2)

您可以使用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 

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