Libraries:

# Load libraries
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.1     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.0     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)

Import and reshape data:

# Import data
stock_df <- read_csv("stock_df.csv")
## Rows: 5 Columns: 1
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): company,2019_week1,2019_week2,2019_week3,2019_week4,2019_week5,2019...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Display original wide format
stock_df
## # A tibble: 5 × 1
##   company,2019_week1,2019_week2,2019_week3,2019_week4,2019_week5,2019_week6,20…¹
##   <chr>                                                                         
## 1 Amazon,1847.839966,1640.560059,1696.199951,1670.569946,1626.22998,1588.219971…
## 2 Apple,73.412498,38.072498,39.205002,39.439999,41.630001,42.602501,42.605,43.2…
## 3 Facebook,205.25,143.800003,150.039993,149.009995,165.710007,167.330002,162.5,…
## 4 Google,1337.02002,1057.189941,1098.26001,1090.98999,1110.75,1095.060059,1113.…
## 5 Microsoft,157.699997,102.800003,107.709999,107.169998,102.779999,105.669998,1…
## # ℹ abbreviated name:
## #   ¹​`company,2019_week1,2019_week2,2019_week3,2019_week4,2019_week5,2019_week6,2019_week7,2019_week8,2019_week9,2019_week10,2019_week11,2019_week12,2019_week13,2019_week14,2019_week15,2019_week16,2019_week17,2019_week18,2019_week19,2019_week20,2019_week21,2019_week22,2019_week23,2019_week24,2019_week25,2019_week26,2019_week27,2019_week28,2019_week29,2019_week30,2019_week31,2019_week32,2019_week33,2019_week34,2019_week35,2019_week36,2019_week37,2019_week38,2019_week39,2019_week40,2019_week41,2019_week42,2019_week43,2019_week44,2019_week45,2019_week46,2019_week47,2019_week48,2019_week49,2019_week50,2019_week51,2019_week52,2020_week1,2020_week2,2020_week3,2020_week4,2020_week5,2020_week6,2020_week7,2020_week8,2020_week9,2020_week10,2020_week11,2020_week12,2020_week13,2020_week14,2020_week15,2020_week16,2020_week17,2020_week18,2020_week19,2020_week20,2020_week21,2020_week22,2020_week23,2020_week24,2020_week25,2020_week26,2020_week27,2020_week28,2020_week29,2020_week30,2020_week31,2020_week32,2020_week33,2020_week34,2020_week35,2020_week36,2020_week37,2020_week38,2020_week39,2020_week40,2020_week41,2020_week42,2020_week43,2020_week44,2020_week45,2020_week46,2020_week47,2020_week48,2020_week49,2020_week50,2020_week51,2020_week52,2020_week53`

```