【发布时间】:2019-03-01 12:07:25
【问题描述】:
我想根据年份和周数确定月份。这个问题是独一无二的,因为它缺少这些示例Transform year/week to date object、Convert week number to date 中所需的星期几信息。
year <- c("2017", "2017", "2018")
week <- c("37", "53", "01")
month <- lubridate::month(as.Date(paste0(year, "-", week), format = "%Y-%V"))
> month
[1] 9 9 9
由于某种原因,这将为我的向量中的每个元素返回9。 9 月是第一次观察的正确月份,但对于其余两个则不是这样。
预期输出:
> month
[1] 9 12 1
编辑:事实证明,如果不知道星期几,这项任务不太可能解决。我将尝试找到解决年份/日期的方法,以完全避免此问题。
【问题讨论】:
-
我已经尝试过遵循这些示例。他们使用
%U周格式而不是%V格式。当我使用%U时,当周为53时,我得到一个NA。当我使用%V格式时,每个月都是9... 这些示例还有一个我缺少的“day”或“weekday”元素。 -
啊,好点……那我得想点别的办法了。
-
不精确,但可能足够好:library(lubridate);图书馆(magrittr);
paste(year, 1,1) %>% ymd %>% add(as.numeric(week) * 7) %>% month()
标签: r date lubridate dayofweek week-number