stocks <- c("AAPL", "NFLX", "AMZN") %>%
  tq_get(from = "2016-01-01", to = "2017-01-01")

stocks
## # A tibble: 756 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 AAPL   2016-01-04  25.7  26.3  25.5  26.3 270597600     23.7
##  2 AAPL   2016-01-05  26.4  26.5  25.6  25.7 223164000     23.1
##  3 AAPL   2016-01-06  25.1  25.6  25.0  25.2 273829600     22.6
##  4 AAPL   2016-01-07  24.7  25.0  24.1  24.1 324377600     21.7
##  5 AAPL   2016-01-08  24.6  24.8  24.2  24.2 283192000     21.8
##  6 AAPL   2016-01-11  24.7  24.8  24.3  24.6 198957600     22.2
##  7 AAPL   2016-01-12  25.1  25.2  24.7  25.0 196616800     22.5
##  8 AAPL   2016-01-13  25.1  25.3  24.3  24.3 249758400     21.9
##  9 AAPL   2016-01-14  24.5  25.1  23.9  24.9 252680400     22.4
## 10 AAPL   2016-01-15  24.0  24.4  23.8  24.3 319335600     21.8
## # ℹ 746 more rows

Apply the dplyr verbs you learned in Chapter 5

Filter rows

stocks %>%
  filter(adjusted > 24)
## # A tibble: 375 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 AAPL   2016-03-22  26.3  26.8  26.3  26.7 129777600     24.1
##  2 AAPL   2016-03-29  26.2  26.9  26.2  26.9 124760400     24.3
##  3 AAPL   2016-03-30  27.2  27.6  27.1  27.4 182404400     24.8
##  4 AAPL   2016-03-31  27.4  27.5  27.2  27.2 103553600     24.6
##  5 AAPL   2016-04-01  27.2  27.5  27.0  27.5 103496000     24.9
##  6 AAPL   2016-04-04  27.6  28.0  27.6  27.8 149424800     25.1
##  7 AAPL   2016-04-05  27.4  27.7  27.4  27.5 106314800     24.8
##  8 AAPL   2016-04-06  27.6  27.7  27.3  27.7 105616400     25.1
##  9 AAPL   2016-04-07  27.5  27.6  27.0  27.1 127207600     24.5
## 10 AAPL   2016-04-08  27.2  27.4  27.0  27.2  94326800     24.6
## # ℹ 365 more rows

Arrange rows

stocks %>%
  arrange(symbol, desc(adjusted))
## # A tibble: 756 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 AAPL   2016-10-25  29.5  29.6  29.3  29.6 192516000     27.0
##  2 AAPL   2016-12-27  29.1  29.5  29.1  29.3  73187600     27.0
##  3 AAPL   2016-12-21  29.2  29.4  29.2  29.3  95132800     26.9
##  4 AAPL   2016-10-24  29.3  29.4  29.2  29.4  94154800     26.9
##  5 AAPL   2016-10-14  29.5  29.5  29.3  29.4 142608800     26.9
##  6 AAPL   2016-12-20  29.2  29.4  29.2  29.2  85700000     26.9
##  7 AAPL   2016-10-17  29.3  29.5  29.2  29.4  94499600     26.9
##  8 AAPL   2016-10-18  29.5  29.6  29.4  29.4  98214000     26.9
##  9 AAPL   2016-12-28  29.4  29.5  29.0  29.2  83623600     26.8
## 10 AAPL   2016-10-12  29.3  29.5  29.2  29.3 150347200     26.8
## # ℹ 746 more rows

Select columns

stocks %>%
  select(symbol, date, close, adjusted)
## # A tibble: 756 × 4
##    symbol date       close adjusted
##    <chr>  <date>     <dbl>    <dbl>
##  1 AAPL   2016-01-04  26.3     23.7
##  2 AAPL   2016-01-05  25.7     23.1
##  3 AAPL   2016-01-06  25.2     22.6
##  4 AAPL   2016-01-07  24.1     21.7
##  5 AAPL   2016-01-08  24.2     21.8
##  6 AAPL   2016-01-11  24.6     22.2
##  7 AAPL   2016-01-12  25.0     22.5
##  8 AAPL   2016-01-13  24.3     21.9
##  9 AAPL   2016-01-14  24.9     22.4
## 10 AAPL   2016-01-15  24.3     21.8
## # ℹ 746 more rows

Mutate — add columns

stocks %>%
  mutate(
    daily_change = close - open,
    pct_change   = (close - open) / open * 100
  )
## # A tibble: 756 × 10
##    symbol date        open  high   low close    volume adjusted daily_change
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>        <dbl>
##  1 AAPL   2016-01-04  25.7  26.3  25.5  26.3 270597600     23.7       0.685 
##  2 AAPL   2016-01-05  26.4  26.5  25.6  25.7 223164000     23.1      -0.760 
##  3 AAPL   2016-01-06  25.1  25.6  25.0  25.2 273829600     22.6       0.0350
##  4 AAPL   2016-01-07  24.7  25.0  24.1  24.1 324377600     21.7      -0.558 
##  5 AAPL   2016-01-08  24.6  24.8  24.2  24.2 283192000     21.8      -0.398 
##  6 AAPL   2016-01-11  24.7  24.8  24.3  24.6 198957600     22.2      -0.110 
##  7 AAPL   2016-01-12  25.1  25.2  24.7  25.0 196616800     22.5      -0.148 
##  8 AAPL   2016-01-13  25.1  25.3  24.3  24.3 249758400     21.9      -0.733 
##  9 AAPL   2016-01-14  24.5  25.1  23.9  24.9 252680400     22.4       0.390 
## 10 AAPL   2016-01-15  24.0  24.4  23.8  24.3 319335600     21.8       0.233 
## # ℹ 746 more rows
## # ℹ 1 more variable: pct_change <dbl>

Summarise with groups

stocks %>%
  group_by(symbol) %>%
  summarise(
    avg_adjusted = mean(adjusted, na.rm = TRUE),
    max_adjusted = max(adjusted, na.rm = TRUE),
    min_adjusted = min(adjusted, na.rm = TRUE)
  ) %>%
  ungroup()
## # A tibble: 3 × 4
##   symbol avg_adjusted max_adjusted min_adjusted
##   <chr>         <dbl>        <dbl>        <dbl>
## 1 AAPL           23.8         27.0        20.5 
## 2 AMZN           35.0         42.2        24.1 
## 3 NFLX           10.2         12.8         8.28