【发布时间】:2014-01-31 16:23:28
【问题描述】:
我有这个日期列表:
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::weekfunctions 会输出一个数字向量:
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 的解决方案特别感兴趣。
【问题讨论】:
-
如果不知道每个星期的年份,我认为您无法稳健地做到这一点。更不用说,几周可以跨越月末/月初。你为什么要这样做?你在某个地方有没有其他信息的第 #s 周?
-
我同意 BrodieG 的观点。如果没有更多信息,您无法将周数更改为月数。但是,如果适合您的目的,您可以直接将原始日期更改为月份。
-
请查看考虑到您的 cmets 的已编辑问题
-
您的示例输出(最后一个“代码”块)看起来像周月,而不是周年。你要哪个?
-
抱歉需要周年。问题已编辑