我想在R中使用Prophet()函数,但无法将“ YearWeek”列转换为as.Date()列。
我有一个“ YearWeek”列,该列存储从201401到201937,即从2014年第1周到2019年第37周的值。
我不知道如何使用Prophet()函数以yyyy-ww的形式将该列声明为日期。
有人知道该怎么做吗?
谢谢你。
一种解决方法是在01
格式化日期的末尾附加yyyy-ww
。
数据:
library(tidyverse)
df <- cross2(2014:2019, str_pad(1:52, width = 2, pad = 0)) %>%
map_df(set_names, c("year", "week")) %>%
transmute(date = paste(year, week, sep = "")) %>%
arrange(date)
head(df)
#> # A tibble: 6 x 1
#> date
#> <chr>
#> 1 201401
#> 2 201402
#> 3 201403
#> 4 201404
#> 5 201405
#> 6 201406
现在让我们附加01
并转换为日期:
df %>%
mutate(date = paste(date, "01", sep = ""),
new_date = as.Date(date, "%Y%U%w"))
#> # A tibble: 312 x 2
#> date new_date
#> <chr> <date>
#> 1 20140101 2014-01-05
#> 2 20140201 2014-01-12
#> 3 20140301 2014-01-19
#> 4 20140401 2014-01-26
#> 5 20140501 2014-02-02
#> 6 20140601 2014-02-09
#> 7 20140701 2014-02-16
#> 8 20140801 2014-02-23
#> 9 20140901 2014-03-02
#> 10 20141001 2014-03-09
#> # ... with 302 more rows
由reprex package(v0.3.0)在2019-10-10创建
有关一年中数字周的更多信息,请参见here。>>