使用lubridate从周号中查找月份

问题描述 投票:0回答:1

我有此日期列表:

library(lubridate)
my.dates = ymd(c("2013-12-14", "2014-01-18", "2014-01-27", "2013-12-13", "2013-12-29", "2013-12-06"))

当我将这些日期转换为星期数字时,以下lubridate::week函数将输出数字向量:

week(my.dates)
[1] 50  3  4 50 52 49

我能否获得lubridate以输出将my.dates转换为星期数和年数的日期(“ POSIXct”“ POSIXt”)对象。因此,输出应为日期对象(而不是字符或数字矢量),其格式应如下所示:

[1] "50-2013" "3-2014"   "4-2014"   "50-2013" "52-2013" "49-2013"

我对使用lubridate的解决方案特别感兴趣。

r date lubridate
1个回答
4
投票

[将my.dates转换为星期字符向量,请尝试以下操作,其中weekyear是lubridate函数:

> paste(week(my.dates), year(my.dates), sep = "-")
[1] "50-2013" "3-2014"  "4-2014"  "50-2013" "52-2013" "49-2013"

问题中的样本输出未在一周中使用前导零,但是如果希望在周中使用前导零,则:

> sprintf("%02d-%d", week(my.dates), year(my.dates))
[1] "50-2013" "03-2014" "04-2014" "50-2013" "52-2013" "49-2013"

以上是星期的字符表示,不能唯一地标识日期,也不能表示POSIXt对象。

© www.soinside.com 2019 - 2024. All rights reserved.