将星期数转换为R中的日期

时间:2020-01-27 09:12:40

标签: r date lubridate

我有一个非常有趣的数据集,其中有一个日期的周编号。这是我的向量的外观。

$ gcc -E test.c 
[...]
void funct_0_and_0+16_(void);
void funct_1_and_1+16_(void);

是否可以创建将其转换为日期变量的方法(日期不正确,但这是所需的格式):

x <- c("2016.49", "2016.50", "2016.51", "2016.52", "2017.01", "2017.02", "2017.03", "2017.04", "2017.05")

3 个答案:

答案 0 :(得分:2)

一个lubridate选项可能是:

ymd(paste0(substr(x, 1, 4), "-01", "-01"))+weeks(as.numeric(substr(x, nchar(x)-1, nchar(x)))-1)

 [1] "2016-12-02" "2016-12-09" "2016-12-16" "2016-12-23" "2017-01-01"

样本数据:

x <- c("2016.49", "2016.50", "2016.51", "2016.52", "2017.01")

答案 1 :(得分:2)

如果您附加一个工作日,那么as.Date将起作用:

x <- c("2016.49", "2016.50", "2016.51")

as.Date(paste0(x, ".1"), "%Y.%U.%u")

[1] "2016-12-05" "2016-12-12" "2016-12-19"

答案 2 :(得分:1)

还有一个lubridate选项

parse_date_time(paste0(x,'.Mon'),'Y/W/a')
[1] "2016-12-05 UTC" "2016-12-12 UTC" "2016-12-19 UTC" "2016-12-26 UTC" "2017-01-02 UTC"