Import stock prices
stocks <- tq_get(c("AAPL", "MSFT", "DELL", "GOOG"),
get = "stock.prices",
from = "2020-01-01",)
stocks
## # A tibble: 4,420 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AAPL 2020-01-02 74.1 75.2 73.8 75.1 135480400 73.0
## 2 AAPL 2020-01-03 74.3 75.1 74.1 74.4 146322800 72.3
## 3 AAPL 2020-01-06 73.4 75.0 73.2 74.9 118387200 72.8
## 4 AAPL 2020-01-07 75.0 75.2 74.4 74.6 108872000 72.5
## 5 AAPL 2020-01-08 74.3 76.1 74.3 75.8 132079200 73.7
## 6 AAPL 2020-01-09 76.8 77.6 76.6 77.4 170108400 75.2
## 7 AAPL 2020-01-10 77.7 78.2 77.1 77.6 140644800 75.4
## 8 AAPL 2020-01-13 77.9 79.3 77.8 79.2 121532000 77.0
## 9 AAPL 2020-01-14 79.2 79.4 78.0 78.2 161954400 76.0
## 10 AAPL 2020-01-15 78.0 78.9 77.4 77.8 121923600 75.6
## # ℹ 4,410 more rows
Apply the deplyr verbs from chapter 5
Select rows
stocks %>% filter(adjusted > 50)
## # A tibble: 3,653 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AAPL 2020-01-02 74.1 75.2 73.8 75.1 135480400 73.0
## 2 AAPL 2020-01-03 74.3 75.1 74.1 74.4 146322800 72.3
## 3 AAPL 2020-01-06 73.4 75.0 73.2 74.9 118387200 72.8
## 4 AAPL 2020-01-07 75.0 75.2 74.4 74.6 108872000 72.5
## 5 AAPL 2020-01-08 74.3 76.1 74.3 75.8 132079200 73.7
## 6 AAPL 2020-01-09 76.8 77.6 76.6 77.4 170108400 75.2
## 7 AAPL 2020-01-10 77.7 78.2 77.1 77.6 140644800 75.4
## 8 AAPL 2020-01-13 77.9 79.3 77.8 79.2 121532000 77.0
## 9 AAPL 2020-01-14 79.2 79.4 78.0 78.2 161954400 76.0
## 10 AAPL 2020-01-15 78.0 78.9 77.4 77.8 121923600 75.6
## # ℹ 3,643 more rows
filter(stocks, open > 50)
## # A tibble: 3,750 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AAPL 2020-01-02 74.1 75.2 73.8 75.1 135480400 73.0
## 2 AAPL 2020-01-03 74.3 75.1 74.1 74.4 146322800 72.3
## 3 AAPL 2020-01-06 73.4 75.0 73.2 74.9 118387200 72.8
## 4 AAPL 2020-01-07 75.0 75.2 74.4 74.6 108872000 72.5
## 5 AAPL 2020-01-08 74.3 76.1 74.3 75.8 132079200 73.7
## 6 AAPL 2020-01-09 76.8 77.6 76.6 77.4 170108400 75.2
## 7 AAPL 2020-01-10 77.7 78.2 77.1 77.6 140644800 75.4
## 8 AAPL 2020-01-13 77.9 79.3 77.8 79.2 121532000 77.0
## 9 AAPL 2020-01-14 79.2 79.4 78.0 78.2 161954400 76.0
## 10 AAPL 2020-01-15 78.0 78.9 77.4 77.8 121923600 75.6
## # ℹ 3,740 more rows
Arrange rows
arrange(stocks, desc(open))
## # A tibble: 4,420 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 MSFT 2024-05-22 430. 432. 427. 431. 18021300 431.
## 2 MSFT 2024-03-21 430. 431. 427. 429. 21296200 429.
## 3 MSFT 2024-03-22 430. 430. 426. 429. 17636500 428.
## 4 MSFT 2024-05-21 427. 433. 425. 429. 21453300 429.
## 5 MSFT 2024-04-15 427. 427. 413. 414. 20273500 413.
## 6 MSFT 2024-04-09 426. 428. 422. 426. 12512300 426.
## 7 MSFT 2024-04-11 426. 429. 422. 428. 17966400 427.
## 8 MSFT 2024-03-26 426. 426. 421. 422. 16725600 421.
## 9 MSFT 2024-03-25 425. 427. 422. 423. 18060500 422.
## 10 MSFT 2024-04-08 425. 427. 423. 425. 14272400 424.
## # ℹ 4,410 more rows
Select columns
select(stocks, symbol, adjusted)
## # A tibble: 4,420 × 2
## symbol adjusted
## <chr> <dbl>
## 1 AAPL 73.0
## 2 AAPL 72.3
## 3 AAPL 72.8
## 4 AAPL 72.5
## 5 AAPL 73.7
## 6 AAPL 75.2
## 7 AAPL 75.4
## 8 AAPL 77.0
## 9 AAPL 76.0
## 10 AAPL 75.6
## # ℹ 4,410 more rows
select(stocks, symbol:close)
## # A tibble: 4,420 × 6
## symbol date open high low close
## <chr> <date> <dbl> <dbl> <dbl> <dbl>
## 1 AAPL 2020-01-02 74.1 75.2 73.8 75.1
## 2 AAPL 2020-01-03 74.3 75.1 74.1 74.4
## 3 AAPL 2020-01-06 73.4 75.0 73.2 74.9
## 4 AAPL 2020-01-07 75.0 75.2 74.4 74.6
## 5 AAPL 2020-01-08 74.3 76.1 74.3 75.8
## 6 AAPL 2020-01-09 76.8 77.6 76.6 77.4
## 7 AAPL 2020-01-10 77.7 78.2 77.1 77.6
## 8 AAPL 2020-01-13 77.9 79.3 77.8 79.2
## 9 AAPL 2020-01-14 79.2 79.4 78.0 78.2
## 10 AAPL 2020-01-15 78.0 78.9 77.4 77.8
## # ℹ 4,410 more rows
Add columns
mutate(stocks,
gain = open - close) %>%
select(symbol, date, gain)
## # A tibble: 4,420 × 3
## symbol date gain
## <chr> <date> <dbl>
## 1 AAPL 2020-01-02 -1.03
## 2 AAPL 2020-01-03 -0.0700
## 3 AAPL 2020-01-06 -1.50
## 4 AAPL 2020-01-07 0.362
## 5 AAPL 2020-01-08 -1.51
## 6 AAPL 2020-01-09 -0.598
## 7 AAPL 2020-01-10 0.0675
## 8 AAPL 2020-01-13 -1.33
## 9 AAPL 2020-01-14 1.01
## 10 AAPL 2020-01-15 0.128
## # ℹ 4,410 more rows
mutate(stocks,
gain = open - close) %>%
select(gain)
## # A tibble: 4,420 × 1
## gain
## <dbl>
## 1 -1.03
## 2 -0.0700
## 3 -1.50
## 4 0.362
## 5 -1.51
## 6 -0.598
## 7 0.0675
## 8 -1.33
## 9 1.01
## 10 0.128
## # ℹ 4,410 more rows
Summarise with group
stocks %>%
group_by(symbol) %>%
summarise(close = mean(close, na.rm = TRUE))
## # A tibble: 4 × 2
## symbol close
## <chr> <dbl>
## 1 AAPL 144.
## 2 DELL 49.9
## 3 GOOG 112.
## 4 MSFT 276.