Import stock prices

stocks <- tq_get(c("NVDA","AAPL"),
                 get = "stock.prices",
                 from = "2016-01-01",
                 to = "2017-01-01")
stocks
## # A tibble: 504 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 NVDA   2016-01-04  8.07  8.14  8.01  8.09 35807600     7.90
##  2 NVDA   2016-01-05  8.24  8.36  8.12  8.22 49027200     8.03
##  3 NVDA   2016-01-06  8.09  8.12  7.79  7.88 44934400     7.70
##  4 NVDA   2016-01-07  7.68  7.74  7.47  7.57 64530400     7.39
##  5 NVDA   2016-01-08  7.67  7.68  7.39  7.41 39847200     7.23
##  6 NVDA   2016-01-11  7.42  7.47  7.29  7.42 40937200     7.25
##  7 NVDA   2016-01-12  7.55  7.66  7.49  7.54 46935600     7.37
##  8 NVDA   2016-01-13  7.60  7.65  7.31  7.32 48167200     7.14
##  9 NVDA   2016-01-14  7.16  7.25  6.96  7.17 60023600     7.00
## 10 NVDA   2016-01-15  6.88  6.96  6.66  6.78 84145200     6.62
## # … with 494 more rows

Plot stock prices

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

#Apply the dplyr verbs you learned in Chapter 5 ##############################################

##Filter Rows

stocks %>% filter(adjusted >7)
## # A tibble: 485 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 NVDA   2016-01-04  8.07  8.14  8.01  8.09 35807600     7.90
##  2 NVDA   2016-01-05  8.24  8.36  8.12  8.22 49027200     8.03
##  3 NVDA   2016-01-06  8.09  8.12  7.79  7.88 44934400     7.70
##  4 NVDA   2016-01-07  7.68  7.74  7.47  7.57 64530400     7.39
##  5 NVDA   2016-01-08  7.67  7.68  7.39  7.41 39847200     7.23
##  6 NVDA   2016-01-11  7.42  7.47  7.29  7.42 40937200     7.25
##  7 NVDA   2016-01-12  7.55  7.66  7.49  7.54 46935600     7.37
##  8 NVDA   2016-01-13  7.60  7.65  7.31  7.32 48167200     7.14
##  9 NVDA   2016-01-14  7.16  7.25  6.96  7.17 60023600     7.00
## 10 NVDA   2016-01-26  7.12  7.20  7.05  7.18 22794400     7.01
## # … with 475 more rows

##Arrange Rows

arrange(stocks, high, low, close)
## # A tibble: 504 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 NVDA   2016-02-11  6.20  6.39  6.20  6.32 34014400     6.18
##  2 NVDA   2016-02-12  6.42  6.44  6.19  6.43 34081600     6.28
##  3 NVDA   2016-02-08  6.51  6.54  6.21  6.30 60885200     6.16
##  4 NVDA   2016-02-10  6.41  6.60  6.32  6.36 33580000     6.21
##  5 NVDA   2016-02-09  6.23  6.64  6.2   6.37 42537200     6.22
##  6 NVDA   2016-02-16  6.52  6.76  6.50  6.75 48535200     6.59
##  7 NVDA   2016-01-20  6.70  6.96  6.61  6.87 48118000     6.71
##  8 NVDA   2016-01-15  6.88  6.96  6.66  6.78 84145200     6.62
##  9 NVDA   2016-02-17  6.83  6.98  6.80  6.92 77146800     6.75
## 10 NVDA   2016-01-21  6.94  7.06  6.80  6.95 48145600     6.79
## # … with 494 more rows

##Select Columns

select(stocks, open, close, adjusted) 
## # A tibble: 504 × 3
##     open close adjusted
##    <dbl> <dbl>    <dbl>
##  1  8.07  8.09     7.90
##  2  8.24  8.22     8.03
##  3  8.09  7.88     7.70
##  4  7.68  7.57     7.39
##  5  7.67  7.41     7.23
##  6  7.42  7.42     7.25
##  7  7.55  7.54     7.37
##  8  7.60  7.32     7.14
##  9  7.16  7.17     7.00
## 10  6.88  6.78     6.62
## # … with 494 more rows
select(stocks, date, high, low)
## # A tibble: 504 × 3
##    date        high   low
##    <date>     <dbl> <dbl>
##  1 2016-01-04  8.14  8.01
##  2 2016-01-05  8.36  8.12
##  3 2016-01-06  8.12  7.79
##  4 2016-01-07  7.74  7.47
##  5 2016-01-08  7.68  7.39
##  6 2016-01-11  7.47  7.29
##  7 2016-01-12  7.66  7.49
##  8 2016-01-13  7.65  7.31
##  9 2016-01-14  7.25  6.96
## 10 2016-01-15  6.96  6.66
## # … with 494 more rows
select(stocks, date, open, high, low, close, adjusted, ends_with("NVDA"))
## # A tibble: 504 × 6
##    date        open  high   low close adjusted
##    <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>
##  1 2016-01-04  8.07  8.14  8.01  8.09     7.90
##  2 2016-01-05  8.24  8.36  8.12  8.22     8.03
##  3 2016-01-06  8.09  8.12  7.79  7.88     7.70
##  4 2016-01-07  7.68  7.74  7.47  7.57     7.39
##  5 2016-01-08  7.67  7.68  7.39  7.41     7.23
##  6 2016-01-11  7.42  7.47  7.29  7.42     7.25
##  7 2016-01-12  7.55  7.66  7.49  7.54     7.37
##  8 2016-01-13  7.60  7.65  7.31  7.32     7.14
##  9 2016-01-14  7.16  7.25  6.96  7.17     7.00
## 10 2016-01-15  6.88  6.96  6.66  6.78     6.62
## # … with 494 more rows
select(stocks, date, open, high, low, close, adjusted, ends_with("AAPL"))
## # A tibble: 504 × 6
##    date        open  high   low close adjusted
##    <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>
##  1 2016-01-04  8.07  8.14  8.01  8.09     7.90
##  2 2016-01-05  8.24  8.36  8.12  8.22     8.03
##  3 2016-01-06  8.09  8.12  7.79  7.88     7.70
##  4 2016-01-07  7.68  7.74  7.47  7.57     7.39
##  5 2016-01-08  7.67  7.68  7.39  7.41     7.23
##  6 2016-01-11  7.42  7.47  7.29  7.42     7.25
##  7 2016-01-12  7.55  7.66  7.49  7.54     7.37
##  8 2016-01-13  7.60  7.65  7.31  7.32     7.14
##  9 2016-01-14  7.16  7.25  6.96  7.17     7.00
## 10 2016-01-15  6.88  6.96  6.66  6.78     6.62
## # … with 494 more rows

##Summarize with groups

stocks
## # A tibble: 504 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 NVDA   2016-01-04  8.07  8.14  8.01  8.09 35807600     7.90
##  2 NVDA   2016-01-05  8.24  8.36  8.12  8.22 49027200     8.03
##  3 NVDA   2016-01-06  8.09  8.12  7.79  7.88 44934400     7.70
##  4 NVDA   2016-01-07  7.68  7.74  7.47  7.57 64530400     7.39
##  5 NVDA   2016-01-08  7.67  7.68  7.39  7.41 39847200     7.23
##  6 NVDA   2016-01-11  7.42  7.47  7.29  7.42 40937200     7.25
##  7 NVDA   2016-01-12  7.55  7.66  7.49  7.54 46935600     7.37
##  8 NVDA   2016-01-13  7.60  7.65  7.31  7.32 48167200     7.14
##  9 NVDA   2016-01-14  7.16  7.25  6.96  7.17 60023600     7.00
## 10 NVDA   2016-01-15  6.88  6.96  6.66  6.78 84145200     6.62
## # … with 494 more rows
####average adjusted stock price

summarise(stocks, adjusted = mean(adjusted, na.rm = TRUE))
## # A tibble: 1 × 1
##   adjusted
##      <dbl>
## 1     18.7
stocks
## # A tibble: 504 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 NVDA   2016-01-04  8.07  8.14  8.01  8.09 35807600     7.90
##  2 NVDA   2016-01-05  8.24  8.36  8.12  8.22 49027200     8.03
##  3 NVDA   2016-01-06  8.09  8.12  7.79  7.88 44934400     7.70
##  4 NVDA   2016-01-07  7.68  7.74  7.47  7.57 64530400     7.39
##  5 NVDA   2016-01-08  7.67  7.68  7.39  7.41 39847200     7.23
##  6 NVDA   2016-01-11  7.42  7.47  7.29  7.42 40937200     7.25
##  7 NVDA   2016-01-12  7.55  7.66  7.49  7.54 46935600     7.37
##  8 NVDA   2016-01-13  7.60  7.65  7.31  7.32 48167200     7.14
##  9 NVDA   2016-01-14  7.16  7.25  6.96  7.17 60023600     7.00
## 10 NVDA   2016-01-15  6.88  6.96  6.66  6.78 84145200     6.62
## # … with 494 more rows
#Group by stock 

group_by(stocks)
## # A tibble: 504 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 NVDA   2016-01-04  8.07  8.14  8.01  8.09 35807600     7.90
##  2 NVDA   2016-01-05  8.24  8.36  8.12  8.22 49027200     8.03
##  3 NVDA   2016-01-06  8.09  8.12  7.79  7.88 44934400     7.70
##  4 NVDA   2016-01-07  7.68  7.74  7.47  7.57 64530400     7.39
##  5 NVDA   2016-01-08  7.67  7.68  7.39  7.41 39847200     7.23
##  6 NVDA   2016-01-11  7.42  7.47  7.29  7.42 40937200     7.25
##  7 NVDA   2016-01-12  7.55  7.66  7.49  7.54 46935600     7.37
##  8 NVDA   2016-01-13  7.60  7.65  7.31  7.32 48167200     7.14
##  9 NVDA   2016-01-14  7.16  7.25  6.96  7.17 60023600     7.00
## 10 NVDA   2016-01-15  6.88  6.96  6.66  6.78 84145200     6.62
## # … with 494 more rows
##Calculate average adjusted stock price

summarise(stocks, adjusted = mean(adjusted, na.rm = TRUE)) %>%
    
### Sort it
    arrange(adjusted)
## # A tibble: 1 × 1
##   adjusted
##      <dbl>
## 1     18.7

Grouping multiple Variables

stocks %>%

    group_by(symbol) %>%
    summarise((count = n())) %>%
    ungroup()
## # A tibble: 2 × 2
##   symbol `(count = n())`
##   <chr>            <int>
## 1 AAPL               252
## 2 NVDA               252