library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
stock_df <- read.csv("stock_df.csv")
stock_df_long <- stock_df %>%
  pivot_longer(
    cols = starts_with("X2019_week"),   
    names_to = c("year", "week"),      
    names_pattern = "X(\\d+)_week(\\d+)",
    values_to = "price"               
  ) %>%
  mutate(year = as.integer(year), week = as.integer(week))
head(stock_df_long)
## # A tibble: 6 × 57
##   company X2020_week1 X2020_week2 X2020_week3 X2020_week4 X2020_week5
##   <chr>         <dbl>       <dbl>       <dbl>       <dbl>       <dbl>
## 1 Amazon        1875.       1883.       1865.       1862.       2009.
## 2 Amazon        1875.       1883.       1865.       1862.       2009.
## 3 Amazon        1875.       1883.       1865.       1862.       2009.
## 4 Amazon        1875.       1883.       1865.       1862.       2009.
## 5 Amazon        1875.       1883.       1865.       1862.       2009.
## 6 Amazon        1875.       1883.       1865.       1862.       2009.
## # ℹ 51 more variables: X2020_week6 <dbl>, X2020_week7 <dbl>, X2020_week8 <dbl>,
## #   X2020_week9 <dbl>, X2020_week10 <dbl>, X2020_week11 <dbl>,
## #   X2020_week12 <dbl>, X2020_week13 <dbl>, X2020_week14 <dbl>,
## #   X2020_week15 <dbl>, X2020_week16 <dbl>, X2020_week17 <dbl>,
## #   X2020_week18 <dbl>, X2020_week19 <dbl>, X2020_week20 <dbl>,
## #   X2020_week21 <dbl>, X2020_week22 <dbl>, X2020_week23 <dbl>,
## #   X2020_week24 <dbl>, X2020_week25 <dbl>, X2020_week26 <dbl>, …