Import stock prices

stocks <- tq_get(c("AMZN", "TGT", "WMT"),
                 get = "stock.prices",
                 from = "2013-01-01",
                 to = "2014-01-01")
stocks
## # A tibble: 756 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 AMZN   2013-01-02  12.8  12.9  12.7  12.9 65420000     12.9
##  2 AMZN   2013-01-03  12.9  13.0  12.8  12.9 55018000     12.9
##  3 AMZN   2013-01-04  12.9  13.0  12.8  13.0 37484000     13.0
##  4 AMZN   2013-01-07  13.1  13.5  13.1  13.4 98200000     13.4
##  5 AMZN   2013-01-08  13.4  13.4  13.2  13.3 60214000     13.3
##  6 AMZN   2013-01-09  13.4  13.5  13.3  13.3 45312000     13.3
##  7 AMZN   2013-01-10  13.4  13.4  13.1  13.3 57268000     13.3
##  8 AMZN   2013-01-11  13.3  13.4  13.2  13.4 48266000     13.4
##  9 AMZN   2013-01-14  13.4  13.7  13.4  13.6 85500000     13.6
## 10 AMZN   2013-01-15  13.5  13.6  13.5  13.6 46538000     13.6
## # … with 746 more rows

Plot stock prices

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

Apply the dplyr vebs to you learned in chapter 5

Filter rows

stocks %>% filter(adjusted > 24)
## # A tibble: 504 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 TGT    2013-01-02  58.6  59.2  58.0  58.8  9523000     44.9
##  2 TGT    2013-01-03  60.5  60.8  59.5  60.2 10665800     45.9
##  3 TGT    2013-01-04  60.7  60.8  59.9  60.6  5249300     46.3
##  4 TGT    2013-01-07  60.5  61.4  60.4  61.3  4896500     46.8
##  5 TGT    2013-01-08  61.1  61.1  60.3  60.6  4928700     46.3
##  6 TGT    2013-01-09  60.7  60.8  60.1  60.2  4431400     45.9
##  7 TGT    2013-01-10  60.4  60.5  59.9  60.3  4747500     46.0
##  8 TGT    2013-01-11  60.2  60.5  60.0  60.1  4481800     45.9
##  9 TGT    2013-01-14  60.0  60.5  59.7  60.4  4444800     46.1
## 10 TGT    2013-01-15  60.4  61.5  60.2  61.1  4692200     46.6
## # … with 494 more rows

Arrange rows

arrange(stocks, desc(date), high, low)
## # A tibble: 756 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 AMZN   2013-12-31  19.7  19.9  19.7  19.9 39930000     19.9
##  2 TGT    2013-12-31  62.6  63.8  62.5  63.3  6783400     49.5
##  3 WMT    2013-12-31  78.7  78.9  78.3  78.7  3859100     64.8
##  4 AMZN   2013-12-30  20.0  20.0  19.6  19.7 49742000     19.7
##  5 TGT    2013-12-30  62.5  62.5  61.9  62.5  3683000     48.8
##  6 WMT    2013-12-30  78.6  78.9  78.4  78.6  3086500     64.8
##  7 AMZN   2013-12-27  20.2  20.3  19.8  19.9 39738000     19.9
##  8 TGT    2013-12-27  62.8  62.8  62.0  62.2  3260100     48.6
##  9 WMT    2013-12-27  78.6  78.9  78.3  78.5  3050000     64.6
## 10 AMZN   2013-12-26  20.1  20.2  19.8  20.2 37370000     20.2
## # … with 746 more rows

Select columns

select(stocks, date:adjusted)
## # A tibble: 756 × 7
##    date        open  high   low close   volume adjusted
##    <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 2013-01-02  12.8  12.9  12.7  12.9 65420000     12.9
##  2 2013-01-03  12.9  13.0  12.8  12.9 55018000     12.9
##  3 2013-01-04  12.9  13.0  12.8  13.0 37484000     13.0
##  4 2013-01-07  13.1  13.5  13.1  13.4 98200000     13.4
##  5 2013-01-08  13.4  13.4  13.2  13.3 60214000     13.3
##  6 2013-01-09  13.4  13.5  13.3  13.3 45312000     13.3
##  7 2013-01-10  13.4  13.4  13.1  13.3 57268000     13.3
##  8 2013-01-11  13.3  13.4  13.2  13.4 48266000     13.4
##  9 2013-01-14  13.4  13.7  13.4  13.6 85500000     13.6
## 10 2013-01-15  13.5  13.6  13.5  13.6 46538000     13.6
## # … with 746 more rows
select(stocks, date, high, low)
## # A tibble: 756 × 3
##    date        high   low
##    <date>     <dbl> <dbl>
##  1 2013-01-02  12.9  12.7
##  2 2013-01-03  13.0  12.8
##  3 2013-01-04  13.0  12.8
##  4 2013-01-07  13.5  13.1
##  5 2013-01-08  13.4  13.2
##  6 2013-01-09  13.5  13.3
##  7 2013-01-10  13.4  13.1
##  8 2013-01-11  13.4  13.2
##  9 2013-01-14  13.7  13.4
## 10 2013-01-15  13.6  13.5
## # … with 746 more rows

Add columns

mutate(stocks,
       gain = open + high) %>%
  
  # Select stocks, date, high, low, and gain
  select(date:high, low)
## # A tibble: 756 × 4
##    date        open  high   low
##    <date>     <dbl> <dbl> <dbl>
##  1 2013-01-02  12.8  12.9  12.7
##  2 2013-01-03  12.9  13.0  12.8
##  3 2013-01-04  12.9  13.0  12.8
##  4 2013-01-07  13.1  13.5  13.1
##  5 2013-01-08  13.4  13.4  13.2
##  6 2013-01-09  13.4  13.5  13.3
##  7 2013-01-10  13.4  13.4  13.1
##  8 2013-01-11  13.3  13.4  13.2
##  9 2013-01-14  13.4  13.7  13.4
## 10 2013-01-15  13.5  13.6  13.5
## # … with 746 more rows

Summarise with groups

stocks %>%
  
  #Group by corporations
  group_by(symbol) %>%
  
  # Calculate average departure delay
  summarise(average_high = mean(high, na.rm = TRUE))
## # A tibble: 3 × 2
##   symbol average_high
##   <chr>         <dbl>
## 1 AMZN           15.0
## 2 TGT            66.7
## 3 WMT            75.7