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的日期(“POSIXct”“POSIXt”)对象吗?my.dates所以输出应该是一个日期对象(不是字符或数字向量),格式如下:

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

我对使用lubridate.

4

1 回答 1

6

要转换my.dates为一周年字符向量,请尝试以下 whereweekyearare 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 对象。

于 2014-01-31T17:57:14.443 回答