设置数据以便在R中使用Prophet()

问题描述 投票:0回答:1

我想在R中使用Prophet()函数,但无法将“ YearWeek”列转换为as.Date()列。

我有一个“ YearWeek”列,该列存储从201401到201937,即从2014年第1周到2019年第37周的值。

我不知道如何使用Prophet()函数以yyyy-ww的形式将该列声明为日期。

有人知道该怎么做吗?

谢谢你。

r date declare week-number facebook-prophet
1个回答
0
投票

一种解决方法是在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。>>

© www.soinside.com 2019 - 2024. All rights reserved.