Import stock prices

stocks <- tq_get(c("TSLA", "NFLX", "MSFT"))
                 get = "stock.prices"
                 from = "2016-01-01"

Plot stock prices

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

Apply the dplyr verbs you learned

Filter Rows

stocks %>% filter(adjusted > 24)
## # A tibble: 6,712 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 TSLA   2017-06-08  24.2  24.8  24.0  24.7 135922500     24.7
##  2 TSLA   2017-06-13  24.5  25.1  24.4  25.1 177118500     25.1
##  3 TSLA   2017-06-14  25.4  25.6  25.1  25.4 192276000     25.4
##  4 TSLA   2017-06-15  24.8  25.0  24.4  25.0 156397500     25.0
##  5 TSLA   2017-06-16  25.2  25.2  24.7  24.8 100965000     24.8
##  6 TSLA   2017-06-19  25    25.1  24.5  24.7  98239500     24.7
##  7 TSLA   2017-06-20  25.1  25.3  24.6  24.8 111580500     24.8
##  8 TSLA   2017-06-21  25.0  25.1  24.5  25.1  73848000     25.1
##  9 TSLA   2017-06-22  25.2  25.7  24.9  25.5 112947000     25.5
## 10 TSLA   2017-06-23  25.5  25.8  25.3  25.6  96687000     25.6
## # ℹ 6,702 more rows

arrange rows

stocks %>% arrange(desc("msft"))
## # A tibble: 8,172 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 TSLA   2014-01-02  9.99 10.2   9.77 10.0   92826000    10.0 
##  2 TSLA   2014-01-03 10    10.1   9.91  9.97  70425000     9.97
##  3 TSLA   2014-01-06 10    10.0   9.68  9.80  80416500     9.80
##  4 TSLA   2014-01-07  9.84 10.0   9.68  9.96  75511500     9.96
##  5 TSLA   2014-01-08  9.92 10.2   9.92 10.1   92448000    10.1 
##  6 TSLA   2014-01-09 10.2  10.2   9.79  9.84  80730000     9.84
##  7 TSLA   2014-01-10  9.90  9.93  9.48  9.71 111691500     9.71
##  8 TSLA   2014-01-13  9.72  9.80  9.19  9.29  94741500     9.29
##  9 TSLA   2014-01-14  9.37 10.8   9.11 10.8  414105000    10.8 
## 10 TSLA   2014-01-15 11.2  11.5  10.8  10.9  306984000    10.9 
## # ℹ 8,162 more rows

Select Columns

stocks %>% select("date")
## # A tibble: 8,172 × 1
##    date      
##    <date>    
##  1 2014-01-02
##  2 2014-01-03
##  3 2014-01-06
##  4 2014-01-07
##  5 2014-01-08
##  6 2014-01-09
##  7 2014-01-10
##  8 2014-01-13
##  9 2014-01-14
## 10 2014-01-15
## # ℹ 8,162 more rows

Add Columns

stocks %>% mutate(stocks,
                  day_diff = close - open) %>%
    select(symbol:close, day_diff)
## # A tibble: 8,172 × 7
##    symbol date        open  high   low close day_diff
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>
##  1 TSLA   2014-01-02  9.99 10.2   9.77 10.0    0.0200
##  2 TSLA   2014-01-03 10    10.1   9.91  9.97  -0.0293
##  3 TSLA   2014-01-06 10    10.0   9.68  9.80  -0.200 
##  4 TSLA   2014-01-07  9.84 10.0   9.68  9.96   0.116 
##  5 TSLA   2014-01-08  9.92 10.2   9.92 10.1    0.162 
##  6 TSLA   2014-01-09 10.2  10.2   9.79  9.84  -0.331 
##  7 TSLA   2014-01-10  9.90  9.93  9.48  9.71  -0.183 
##  8 TSLA   2014-01-13  9.72  9.80  9.19  9.29  -0.429 
##  9 TSLA   2014-01-14  9.37 10.8   9.11 10.8    1.38  
## 10 TSLA   2014-01-15 11.2  11.5  10.8  10.9   -0.288 
## # ℹ 8,162 more rows

Summarise with groups

stocks %>%
    group_by(symbol) %>%
    summarise(avg_volume = mean(volume, na.rm = TRUE)) %>%
    arrange(avg_volume)
## # A tibble: 3 × 2
##   symbol avg_volume
##   <chr>       <dbl>
## 1 NFLX     9974964.
## 2 MSFT    29396634.
## 3 TSLA   111787426.