Import stock prices

stocks <- tq_get(c("TSLA", "F", "TM", "HMC"),
                 get = "stock.prices",
                 from = "2018-01-01",
                 to = "2019-01-01")
stocks
## # A tibble: 1,004 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 TSLA   2018-01-02  20.8  21.5  20.7  21.4  65283000     21.4
##  2 TSLA   2018-01-03  21.4  21.7  21.0  21.2  67822500     21.2
##  3 TSLA   2018-01-04  20.9  21.2  20.4  21.0 149194500     21.0
##  4 TSLA   2018-01-05  21.1  21.1  20.8  21.1  68868000     21.1
##  5 TSLA   2018-01-08  21.1  22.5  21.0  22.4 147891000     22.4
##  6 TSLA   2018-01-09  22.3  22.6  21.8  22.2 107199000     22.2
##  7 TSLA   2018-01-10  22.1  22.5  22    22.3  64648500     22.3
##  8 TSLA   2018-01-11  22.3  23.0  22.2  22.5  99682500     22.5
##  9 TSLA   2018-01-12  22.6  22.7  22.2  22.4  72376500     22.4
## 10 TSLA   2018-01-16  22.5  23    22.3  22.7  97114500     22.7
## # … with 994 more rows

Plot stock prices

stocks %>%
    
    ggplot(aes(x = date, y = adjusted, color = symbol)) +
    geom_line()

Apply the dplyr verbs you leanred in chapter 5

Filter rows

stocks %>% filter(adjusted > 24)
## # A tibble: 512 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 TSLA   2018-06-18  23.7  24.9  23.6  24.7 181098000     24.7
##  2 TSLA   2018-06-20  23.9  24.3  23.5  24.1 125755500     24.1
##  3 TSLA   2018-08-07  22.9  25.8  22.6  25.3 463137000     25.3
##  4 TSLA   2018-08-08  24.6  25.5  24.5  24.7 368568000     24.7
##  5 TSLA   2018-12-06  23.7  24.5  23.4  24.2 117637500     24.2
##  6 TSLA   2018-12-10  24    24.4  23.5  24.3  99202500     24.3
##  7 TSLA   2018-12-11  24.7  24.8  24.0  24.5  94632000     24.5
##  8 TSLA   2018-12-12  24.6  24.8  24.3  24.4  75405000     24.4
##  9 TSLA   2018-12-13  24.7  25.2  24.5  25.1 110488500     25.1
## 10 TSLA   2018-12-14  25    25.2  24.3  24.4  95064000     24.4
## # … with 502 more rows

Arrange rows

stocks %>% arrange(desc(date))
## # A tibble: 1,004 × 8
##    symbol date         open   high    low  close    volume adjusted
##    <chr>  <date>      <dbl>  <dbl>  <dbl>  <dbl>     <dbl>    <dbl>
##  1 TSLA   2018-12-31  22.5   22.6   21.7   22.2   94534500    22.2 
##  2 F      2018-12-31   7.85   7.86   7.5    7.65  57816000     6.87
##  3 TM     2018-12-31 116.   117.   115.   116.      184700   116.  
##  4 HMC    2018-12-31  26.5   26.7   26.4   26.5    1158400    26.5 
##  5 TSLA   2018-12-28  21.5   22.4   21.2   22.3  149085000    22.3 
##  6 F      2018-12-28   7.83   8.04   7.76   7.81  47331700     7.01
##  7 TM     2018-12-28 116.   117.   116.   116.      179300   116.  
##  8 HMC    2018-12-28  26.3   26.7   26.2   26.4    1105000    26.4 
##  9 TSLA   2018-12-27  21.3   21.5   20.1   21.1  128626500    21.1 
## 10 F      2018-12-27   7.82   7.85   7.53   7.85  49813000     7.05
## # … with 994 more rows

Select columns

stocks %>% select(symbol, date,open,high,low,close)
## # A tibble: 1,004 × 6
##    symbol date        open  high   low close
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>
##  1 TSLA   2018-01-02  20.8  21.5  20.7  21.4
##  2 TSLA   2018-01-03  21.4  21.7  21.0  21.2
##  3 TSLA   2018-01-04  20.9  21.2  20.4  21.0
##  4 TSLA   2018-01-05  21.1  21.1  20.8  21.1
##  5 TSLA   2018-01-08  21.1  22.5  21.0  22.4
##  6 TSLA   2018-01-09  22.3  22.6  21.8  22.2
##  7 TSLA   2018-01-10  22.1  22.5  22    22.3
##  8 TSLA   2018-01-11  22.3  23.0  22.2  22.5
##  9 TSLA   2018-01-12  22.6  22.7  22.2  22.4
## 10 TSLA   2018-01-16  22.5  23    22.3  22.7
## # … with 994 more rows

Add columns

mutate(stocks,
       high_low_difference = high - low)
## # A tibble: 1,004 × 9
##    symbol date        open  high   low close    volume adjusted high_low_diffe…¹
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>            <dbl>
##  1 TSLA   2018-01-02  20.8  21.5  20.7  21.4  65283000     21.4            0.741
##  2 TSLA   2018-01-03  21.4  21.7  21.0  21.2  67822500     21.2            0.647
##  3 TSLA   2018-01-04  20.9  21.2  20.4  21.0 149194500     21.0            0.858
##  4 TSLA   2018-01-05  21.1  21.1  20.8  21.1  68868000     21.1            0.349
##  5 TSLA   2018-01-08  21.1  22.5  21.0  22.4 147891000     22.4            1.43 
##  6 TSLA   2018-01-09  22.3  22.6  21.8  22.2 107199000     22.2            0.760
##  7 TSLA   2018-01-10  22.1  22.5  22    22.3  64648500     22.3            0.467
##  8 TSLA   2018-01-11  22.3  23.0  22.2  22.5  99682500     22.5            0.770
##  9 TSLA   2018-01-12  22.6  22.7  22.2  22.4  72376500     22.4            0.449
## 10 TSLA   2018-01-16  22.5  23    22.3  22.7  97114500     22.7            0.68 
## # … with 994 more rows, and abbreviated variable name ¹​high_low_difference

Summarise with groups