I have been following along with Hadley Wickham's R for data science book. He has a lot of advice on using lubridate, but a lot of the functions assume that you have year, month, and day. How do you convert to date format when all you have is year and week using lubridate?
data.frame(
year = c(2015, 2015, 2016, 2016, 2016, 2016, 2016),
week = c(1, 20, 35, 49, 8, 4, 53)
)
#year week
#2015 1
#2015 20
#2016 35
#2016 49
#2016 8
#2016 4
#2016 53
You can do this with the weeks() function in lubridate, if you want. You just have to first set up a baseline date object. I did that here using str_c from stringr.
library(dplyr)
library(stringr)
my_dates <- tribble(
~year, ~week,
2015, 1,
2015, 20,
2016, 35,
2016, 49,
2016, 8,
2016, 4,
2016, 53
)
my_dates %>%
mutate(beginning = ymd(str_c(year, "-01-01")),
final_date = beginning + weeks(week))
#> # A tibble: 7 x 4
#> year week beginning final_date
#> <dbl> <dbl> <date> <date>
#> 1 2015 1 2015-01-01 2015-01-08
#> 2 2015 20 2015-01-01 2015-05-21
#> 3 2016 35 2016-01-01 2016-09-02
#> 4 2016 49 2016-01-01 2016-12-09
#> 5 2016 8 2016-01-01 2016-02-26
#> 6 2016 4 2016-01-01 2016-01-29
#> 7 2016 53 2016-01-01 2017-01-06
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With