Import stock prices

stocks <- tq_get(c("RIVN", "LCID", "F"),
                 get = "stock.prices",
                 from = "2024-01-01")
stocks
## # A tibble: 1,269 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 RIVN   2024-01-02  21.9  21.9  20.8  21.1 49626300     21.1
##  2 RIVN   2024-01-03  20.5  20.7  19.7  20.3 35634500     20.3
##  3 RIVN   2024-01-04  19.9  20.3  19.5  19.5 28453000     19.5
##  4 RIVN   2024-01-05  19.4  19.9  19    19.1 27468400     19.1
##  5 RIVN   2024-01-08  19.1  19.6  18.9  19.6 18745500     19.6
##  6 RIVN   2024-01-09  19.6  19.8  19.2  19.2 18403000     19.2
##  7 RIVN   2024-01-10  19.3  19.4  18.9  19.1 14916700     19.1
##  8 RIVN   2024-01-11  18.9  19.1  18.3  18.8 22677600     18.8
##  9 RIVN   2024-01-12  18.4  18.9  17.8  18.1 29742200     18.1
## 10 RIVN   2024-01-16  17.7  18.0  17.1  17.8 21092800     17.8
## # ℹ 1,259 more rows

Plot stock prices

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

Apply the dplyer verbs you learned in chapter 5

Filter rows

stocks %>% filter(adjusted > 18)
## # A tibble: 430 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 RIVN   2024-01-02  21.9  21.9  20.8  21.1 49626300     21.1
##  2 RIVN   2024-01-03  20.5  20.7  19.7  20.3 35634500     20.3
##  3 RIVN   2024-01-04  19.9  20.3  19.5  19.5 28453000     19.5
##  4 RIVN   2024-01-05  19.4  19.9  19    19.1 27468400     19.1
##  5 RIVN   2024-01-08  19.1  19.6  18.9  19.6 18745500     19.6
##  6 RIVN   2024-01-09  19.6  19.8  19.2  19.2 18403000     19.2
##  7 RIVN   2024-01-10  19.3  19.4  18.9  19.1 14916700     19.1
##  8 RIVN   2024-01-11  18.9  19.1  18.3  18.8 22677600     18.8
##  9 RIVN   2024-01-12  18.4  18.9  17.8  18.1 29742200     18.1
## 10 RIVN   2024-07-12  16.8  18.9  16.8  18.1 97340600     18.1
## # ℹ 420 more rows

Arange rows

arrange(stocks, desc(high), desc(low))
## # A tibble: 1,269 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 LCID   2024-08-26  41.8  44.3  40.9  42.6  6418120     42.6
##  2 LCID   2024-08-27  42.9  44    38.4  41.1  4868450     41.1
##  3 LCID   2024-07-12  34.8  43.2  34.7  42.5 16778970     42.5
##  4 LCID   2024-01-02  41.7  42.9  41.1  41.5  2836080     41.5
##  5 LCID   2024-09-03  40.4  42.8  37.4  38.2  4031370     38.2
##  6 LCID   2024-08-23  38.9  42.8  38.6  42    6951410     42  
##  7 LCID   2024-07-15  42    42    36    36.1  7652360     36.1
##  8 LCID   2024-01-03  41    41.2  39.5  39.6  4045240     39.6
##  9 LCID   2024-08-29  40.2  41    39.4  39.6  3103770     39.6
## 10 LCID   2024-08-30  40    40.8  39.5  40.2  3025930     40.2
## # ℹ 1,259 more rows

Select columbs

select(stocks, date:close)
## # A tibble: 1,269 × 5
##    date        open  high   low close
##    <date>     <dbl> <dbl> <dbl> <dbl>
##  1 2024-01-02  21.9  21.9  20.8  21.1
##  2 2024-01-03  20.5  20.7  19.7  20.3
##  3 2024-01-04  19.9  20.3  19.5  19.5
##  4 2024-01-05  19.4  19.9  19    19.1
##  5 2024-01-08  19.1  19.6  18.9  19.6
##  6 2024-01-09  19.6  19.8  19.2  19.2
##  7 2024-01-10  19.3  19.4  18.9  19.1
##  8 2024-01-11  18.9  19.1  18.3  18.8
##  9 2024-01-12  18.4  18.9  17.8  18.1
## 10 2024-01-16  17.7  18.0  17.1  17.8
## # ℹ 1,259 more rows
select(stocks, date, open, close)
## # A tibble: 1,269 × 3
##    date        open close
##    <date>     <dbl> <dbl>
##  1 2024-01-02  21.9  21.1
##  2 2024-01-03  20.5  20.3
##  3 2024-01-04  19.9  19.5
##  4 2024-01-05  19.4  19.1
##  5 2024-01-08  19.1  19.6
##  6 2024-01-09  19.6  19.2
##  7 2024-01-10  19.3  19.1
##  8 2024-01-11  18.9  18.8
##  9 2024-01-12  18.4  18.1
## 10 2024-01-16  17.7  17.8
## # ℹ 1,259 more rows
select(stocks, date, open, close, volume)
## # A tibble: 1,269 × 4
##    date        open close   volume
##    <date>     <dbl> <dbl>    <dbl>
##  1 2024-01-02  21.9  21.1 49626300
##  2 2024-01-03  20.5  20.3 35634500
##  3 2024-01-04  19.9  19.5 28453000
##  4 2024-01-05  19.4  19.1 27468400
##  5 2024-01-08  19.1  19.6 18745500
##  6 2024-01-09  19.6  19.2 18403000
##  7 2024-01-10  19.3  19.1 14916700
##  8 2024-01-11  18.9  18.8 22677600
##  9 2024-01-12  18.4  18.1 29742200
## 10 2024-01-16  17.7  17.8 21092800
## # ℹ 1,259 more rows

Add columbs

getSymbols("RIVN", from = "2025-01-01", to = Sys.Date(), auto.assign = TRUE)
## [1] "RIVN"
stocks <- data.frame(date = index(RIVN), coredata(RIVN))
colnames(stocks) <- c("date", "open", "high", "low", "close", "volume", "adjusted")
mutate(stocks,
       gain = close - open) %>%
  select(date, gain)
##           date         gain
## 1   2025-01-02 -0.100000381
## 2   2025-01-03  2.579999924
## 3   2025-01-06 -0.750000000
## 4   2025-01-07 -0.980000496
## 5   2025-01-08 -0.354999542
## 6   2025-01-10 -0.149999619
## 7   2025-01-13 -0.050000191
## 8   2025-01-14 -0.529999733
## 9   2025-01-15  0.044999123
## 10  2025-01-16  0.409999847
## 11  2025-01-17 -0.465000153
## 12  2025-01-21 -0.550000191
## 13  2025-01-22 -0.410000801
## 14  2025-01-23 -0.110000610
## 15  2025-01-24  0.060000420
## 16  2025-01-27  0.060000420
## 17  2025-01-28 -0.170000076
## 18  2025-01-29  0.079999924
## 19  2025-01-30 -0.059999466
## 20  2025-01-31  0.110000610
## 21  2025-02-03  0.369999886
## 22  2025-02-04  0.519999504
## 23  2025-02-05 -0.039999962
## 24  2025-02-06 -0.079999924
## 25  2025-02-07 -0.340000153
## 26  2025-02-10  0.329999924
## 27  2025-02-11 -0.350000381
## 28  2025-02-12  0.154999733
## 29  2025-02-13  0.630000114
## 30  2025-02-14  0.554999352
## 31  2025-02-18  0.659999847
## 32  2025-02-19 -0.399999619
## 33  2025-02-20 -0.320000648
## 34  2025-02-21  0.260000229
## 35  2025-02-24 -0.534999847
## 36  2025-02-25 -0.480000496
## 37  2025-02-26 -0.120000839
## 38  2025-02-27  0.100000381
## 39  2025-02-28  0.270000458
## 40  2025-03-03 -0.489999771
## 41  2025-03-04  0.110000610
## 42  2025-03-05  0.020000458
## 43  2025-03-06  0.059999466
## 44  2025-03-07  0.270000458
## 45  2025-03-10 -0.010000229
## 46  2025-03-11 -0.189999580
## 47  2025-03-12 -0.004999161
## 48  2025-03-13 -0.390000343
## 49  2025-03-14  0.015000343
## 50  2025-03-17  0.270000458
## 51  2025-03-18  0.199999809
## 52  2025-03-19  0.119999886
## 53  2025-03-20 -0.194999695
## 54  2025-03-21  0.800000191
## 55  2025-03-24  0.354999542
## 56  2025-03-25  0.159999847
## 57  2025-03-26 -0.460000038
## 58  2025-03-27  0.880000114
## 59  2025-03-28 -0.585000038
## 60  2025-03-31  0.420000076
## 61  2025-04-01  0.814999580
## 62  2025-04-02 -0.320000648
## 63  2025-04-03 -0.244999886
## 64  2025-04-04 -0.019999504
## 65  2025-04-07  0.640000343
## 66  2025-04-08 -0.750999451
## 67  2025-04-09  0.990000725
## 68  2025-04-10 -0.015000343
## 69  2025-04-11  0.060000420
## 70  2025-04-14  0.389999390
## 71  2025-04-15  0.010000229
## 72  2025-04-16 -0.150000572
## 73  2025-04-17  0.070000648
## 74  2025-04-21 -0.335000038
## 75  2025-04-22  0.039999962
## 76  2025-04-23  0.029999733
## 77  2025-04-24  0.220000267
## 78  2025-04-25  0.585000038
## 79  2025-04-28  0.429999352
## 80  2025-04-29  0.150000572
## 81  2025-04-30  0.769999504
## 82  2025-05-01  0.039999962
## 83  2025-05-02 -0.220000267
## 84  2025-05-05 -0.149999619
## 85  2025-05-06  0.119999886
## 86  2025-05-07 -0.729999542
## 87  2025-05-08  0.760000229
## 88  2025-05-09  0.550000191
## 89  2025-05-12 -0.179999352
## 90  2025-05-13  0.149999619
## 91  2025-05-14  0.164999962
## 92  2025-05-15  0.659999847
## 93  2025-05-16  0.430000305
## 94  2025-05-19  0.850001335
## 95  2025-05-20  0.610000610
## 96  2025-05-21 -0.369998932
## 97  2025-05-22 -0.280000687
## 98  2025-05-23  0.020000458
## 99  2025-05-27 -0.569999695
## 100 2025-05-28  0.079999924
## 101 2025-05-29 -0.664999962
## 102 2025-05-30 -0.435000420
## 103 2025-06-02 -0.299999237
## 104 2025-06-03  0.180000305
## 105 2025-06-04 -0.359999657
## 106 2025-06-05 -0.244999886
## 107 2025-06-06  0.085000038
## 108 2025-06-09  0.250000000
## 109 2025-06-10 -0.190000534
## 110 2025-06-11 -0.404999733
## 111 2025-06-12 -0.069999695
## 112 2025-06-13 -0.154999733
## 113 2025-06-16  0.130000114
## 114 2025-06-17 -0.085000038
## 115 2025-06-18  0.330000877
## 116 2025-06-20 -0.360000610
## 117 2025-06-23  0.119999886
## 118 2025-06-24 -0.024999619
## 119 2025-06-25 -0.125000000
## 120 2025-06-26  0.119999886
## 121 2025-06-27 -0.344999313
## 122 2025-06-30  0.139999390
## 123 2025-07-01 -0.074999809
## 124 2025-07-02 -0.430000305
## 125 2025-07-03  0.099999428
## 126 2025-07-07 -0.130000114
## 127 2025-07-08  0.340000153
## 128 2025-07-09  0.010000229
## 129 2025-07-10  0.104999542
## 130 2025-07-11 -0.150000572
## 131 2025-07-14 -0.100999832
## 132 2025-07-15 -0.170000076
## 133 2025-07-16 -0.309999466
## 134 2025-07-17  0.159999847
## 135 2025-07-18  0.670000076
## 136 2025-07-21 -0.215000153
## 137 2025-07-22  0.470000267
## 138 2025-07-23 -0.189999580
## 139 2025-07-24  0.034999847
## 140 2025-07-25  0.119999886
## 141 2025-07-28 -0.265000343
## 142 2025-07-29 -0.710000038
## 143 2025-07-30 -0.079999924
## 144 2025-07-31 -0.125000000
## 145 2025-08-01 -0.269999504
## 146 2025-08-04 -0.150000572
## 147 2025-08-05 -0.329999924
## 148 2025-08-06 -0.034999847
## 149 2025-08-07  0.299999237
## 150 2025-08-08 -0.289999962
## 151 2025-08-11  0.050000191
## 152 2025-08-12 -0.109999657
## 153 2025-08-13  0.279999733
## 154 2025-08-14 -0.004999161
## 155 2025-08-15  0.210000038
## 156 2025-08-18  0.130000114
## 157 2025-08-19 -0.199999809
## 158 2025-08-20 -0.105000496
## 159 2025-08-21  0.079999924
## 160 2025-08-22  0.920000076
## 161 2025-08-25  0.059999466
## 162 2025-08-26  0.100000381
## 163 2025-08-27 -0.029999733
## 164 2025-08-28  0.300000191
## 165 2025-08-29 -0.079999924
## 166 2025-09-02  0.569999695
## 167 2025-09-03  0.539999962
## 168 2025-09-04 -0.659999847
## 169 2025-09-05  0.470000267
## 170 2025-09-08 -0.244999886
## 171 2025-09-09 -0.060000420
mutate(stocks,
       gain = close - open) %>%
  select(gain)
##             gain
## 1   -0.100000381
## 2    2.579999924
## 3   -0.750000000
## 4   -0.980000496
## 5   -0.354999542
## 6   -0.149999619
## 7   -0.050000191
## 8   -0.529999733
## 9    0.044999123
## 10   0.409999847
## 11  -0.465000153
## 12  -0.550000191
## 13  -0.410000801
## 14  -0.110000610
## 15   0.060000420
## 16   0.060000420
## 17  -0.170000076
## 18   0.079999924
## 19  -0.059999466
## 20   0.110000610
## 21   0.369999886
## 22   0.519999504
## 23  -0.039999962
## 24  -0.079999924
## 25  -0.340000153
## 26   0.329999924
## 27  -0.350000381
## 28   0.154999733
## 29   0.630000114
## 30   0.554999352
## 31   0.659999847
## 32  -0.399999619
## 33  -0.320000648
## 34   0.260000229
## 35  -0.534999847
## 36  -0.480000496
## 37  -0.120000839
## 38   0.100000381
## 39   0.270000458
## 40  -0.489999771
## 41   0.110000610
## 42   0.020000458
## 43   0.059999466
## 44   0.270000458
## 45  -0.010000229
## 46  -0.189999580
## 47  -0.004999161
## 48  -0.390000343
## 49   0.015000343
## 50   0.270000458
## 51   0.199999809
## 52   0.119999886
## 53  -0.194999695
## 54   0.800000191
## 55   0.354999542
## 56   0.159999847
## 57  -0.460000038
## 58   0.880000114
## 59  -0.585000038
## 60   0.420000076
## 61   0.814999580
## 62  -0.320000648
## 63  -0.244999886
## 64  -0.019999504
## 65   0.640000343
## 66  -0.750999451
## 67   0.990000725
## 68  -0.015000343
## 69   0.060000420
## 70   0.389999390
## 71   0.010000229
## 72  -0.150000572
## 73   0.070000648
## 74  -0.335000038
## 75   0.039999962
## 76   0.029999733
## 77   0.220000267
## 78   0.585000038
## 79   0.429999352
## 80   0.150000572
## 81   0.769999504
## 82   0.039999962
## 83  -0.220000267
## 84  -0.149999619
## 85   0.119999886
## 86  -0.729999542
## 87   0.760000229
## 88   0.550000191
## 89  -0.179999352
## 90   0.149999619
## 91   0.164999962
## 92   0.659999847
## 93   0.430000305
## 94   0.850001335
## 95   0.610000610
## 96  -0.369998932
## 97  -0.280000687
## 98   0.020000458
## 99  -0.569999695
## 100  0.079999924
## 101 -0.664999962
## 102 -0.435000420
## 103 -0.299999237
## 104  0.180000305
## 105 -0.359999657
## 106 -0.244999886
## 107  0.085000038
## 108  0.250000000
## 109 -0.190000534
## 110 -0.404999733
## 111 -0.069999695
## 112 -0.154999733
## 113  0.130000114
## 114 -0.085000038
## 115  0.330000877
## 116 -0.360000610
## 117  0.119999886
## 118 -0.024999619
## 119 -0.125000000
## 120  0.119999886
## 121 -0.344999313
## 122  0.139999390
## 123 -0.074999809
## 124 -0.430000305
## 125  0.099999428
## 126 -0.130000114
## 127  0.340000153
## 128  0.010000229
## 129  0.104999542
## 130 -0.150000572
## 131 -0.100999832
## 132 -0.170000076
## 133 -0.309999466
## 134  0.159999847
## 135  0.670000076
## 136 -0.215000153
## 137  0.470000267
## 138 -0.189999580
## 139  0.034999847
## 140  0.119999886
## 141 -0.265000343
## 142 -0.710000038
## 143 -0.079999924
## 144 -0.125000000
## 145 -0.269999504
## 146 -0.150000572
## 147 -0.329999924
## 148 -0.034999847
## 149  0.299999237
## 150 -0.289999962
## 151  0.050000191
## 152 -0.109999657
## 153  0.279999733
## 154 -0.004999161
## 155  0.210000038
## 156  0.130000114
## 157 -0.199999809
## 158 -0.105000496
## 159  0.079999924
## 160  0.920000076
## 161  0.059999466
## 162  0.100000381
## 163 -0.029999733
## 164  0.300000191
## 165 -0.079999924
## 166  0.569999695
## 167  0.539999962
## 168 -0.659999847
## 169  0.470000267
## 170 -0.244999886
## 171 -0.060000420
transmute(stocks,
          gain = close - open)
##             gain
## 1   -0.100000381
## 2    2.579999924
## 3   -0.750000000
## 4   -0.980000496
## 5   -0.354999542
## 6   -0.149999619
## 7   -0.050000191
## 8   -0.529999733
## 9    0.044999123
## 10   0.409999847
## 11  -0.465000153
## 12  -0.550000191
## 13  -0.410000801
## 14  -0.110000610
## 15   0.060000420
## 16   0.060000420
## 17  -0.170000076
## 18   0.079999924
## 19  -0.059999466
## 20   0.110000610
## 21   0.369999886
## 22   0.519999504
## 23  -0.039999962
## 24  -0.079999924
## 25  -0.340000153
## 26   0.329999924
## 27  -0.350000381
## 28   0.154999733
## 29   0.630000114
## 30   0.554999352
## 31   0.659999847
## 32  -0.399999619
## 33  -0.320000648
## 34   0.260000229
## 35  -0.534999847
## 36  -0.480000496
## 37  -0.120000839
## 38   0.100000381
## 39   0.270000458
## 40  -0.489999771
## 41   0.110000610
## 42   0.020000458
## 43   0.059999466
## 44   0.270000458
## 45  -0.010000229
## 46  -0.189999580
## 47  -0.004999161
## 48  -0.390000343
## 49   0.015000343
## 50   0.270000458
## 51   0.199999809
## 52   0.119999886
## 53  -0.194999695
## 54   0.800000191
## 55   0.354999542
## 56   0.159999847
## 57  -0.460000038
## 58   0.880000114
## 59  -0.585000038
## 60   0.420000076
## 61   0.814999580
## 62  -0.320000648
## 63  -0.244999886
## 64  -0.019999504
## 65   0.640000343
## 66  -0.750999451
## 67   0.990000725
## 68  -0.015000343
## 69   0.060000420
## 70   0.389999390
## 71   0.010000229
## 72  -0.150000572
## 73   0.070000648
## 74  -0.335000038
## 75   0.039999962
## 76   0.029999733
## 77   0.220000267
## 78   0.585000038
## 79   0.429999352
## 80   0.150000572
## 81   0.769999504
## 82   0.039999962
## 83  -0.220000267
## 84  -0.149999619
## 85   0.119999886
## 86  -0.729999542
## 87   0.760000229
## 88   0.550000191
## 89  -0.179999352
## 90   0.149999619
## 91   0.164999962
## 92   0.659999847
## 93   0.430000305
## 94   0.850001335
## 95   0.610000610
## 96  -0.369998932
## 97  -0.280000687
## 98   0.020000458
## 99  -0.569999695
## 100  0.079999924
## 101 -0.664999962
## 102 -0.435000420
## 103 -0.299999237
## 104  0.180000305
## 105 -0.359999657
## 106 -0.244999886
## 107  0.085000038
## 108  0.250000000
## 109 -0.190000534
## 110 -0.404999733
## 111 -0.069999695
## 112 -0.154999733
## 113  0.130000114
## 114 -0.085000038
## 115  0.330000877
## 116 -0.360000610
## 117  0.119999886
## 118 -0.024999619
## 119 -0.125000000
## 120  0.119999886
## 121 -0.344999313
## 122  0.139999390
## 123 -0.074999809
## 124 -0.430000305
## 125  0.099999428
## 126 -0.130000114
## 127  0.340000153
## 128  0.010000229
## 129  0.104999542
## 130 -0.150000572
## 131 -0.100999832
## 132 -0.170000076
## 133 -0.309999466
## 134  0.159999847
## 135  0.670000076
## 136 -0.215000153
## 137  0.470000267
## 138 -0.189999580
## 139  0.034999847
## 140  0.119999886
## 141 -0.265000343
## 142 -0.710000038
## 143 -0.079999924
## 144 -0.125000000
## 145 -0.269999504
## 146 -0.150000572
## 147 -0.329999924
## 148 -0.034999847
## 149  0.299999237
## 150 -0.289999962
## 151  0.050000191
## 152 -0.109999657
## 153  0.279999733
## 154 -0.004999161
## 155  0.210000038
## 156  0.130000114
## 157 -0.199999809
## 158 -0.105000496
## 159  0.079999924
## 160  0.920000076
## 161  0.059999466
## 162  0.100000381
## 163 -0.029999733
## 164  0.300000191
## 165 -0.079999924
## 166  0.569999695
## 167  0.539999962
## 168 -0.659999847
## 169  0.470000267
## 170 -0.244999886
## 171 -0.060000420
select(stocks, date, close) %>%
  mutate(close_lag1 = lag(close))
##           date  close close_lag1
## 1   2025-01-02 13.250         NA
## 2   2025-01-03 16.490     13.250
## 3   2025-01-06 15.715     16.490
## 4   2025-01-07 14.950     15.715
## 5   2025-01-08 14.210     14.950
## 6   2025-01-10 13.850     14.210
## 7   2025-01-13 13.490     13.850
## 8   2025-01-14 13.340     13.490
## 9   2025-01-15 13.940     13.340
## 10  2025-01-16 14.440     13.940
## 11  2025-01-17 14.210     14.440
## 12  2025-01-21 13.290     14.210
## 13  2025-01-22 12.690     13.290
## 14  2025-01-23 12.490     12.690
## 15  2025-01-24 12.770     12.490
## 16  2025-01-27 12.850     12.770
## 17  2025-01-28 12.710     12.850
## 18  2025-01-29 12.420     12.710
## 19  2025-01-30 12.510     12.420
## 20  2025-01-31 12.560     12.510
## 21  2025-02-03 12.390     12.560
## 22  2025-02-04 12.870     12.390
## 23  2025-02-05 12.770     12.870
## 24  2025-02-06 12.800     12.770
## 25  2025-02-07 12.480     12.800
## 26  2025-02-10 12.990     12.480
## 27  2025-02-11 12.440     12.990
## 28  2025-02-12 12.480     12.440
## 29  2025-02-13 13.300     12.480
## 30  2025-02-14 14.030     13.300
## 31  2025-02-18 14.440     14.030
## 32  2025-02-19 13.930     14.440
## 33  2025-02-20 13.610     13.930
## 34  2025-02-21 12.970     13.610
## 35  2025-02-24 11.960     12.970
## 36  2025-02-25 11.450     11.960
## 37  2025-02-26 11.400     11.450
## 38  2025-02-27 11.600     11.400
## 39  2025-02-28 11.840     11.600
## 40  2025-03-03 11.510     11.840
## 41  2025-03-04 11.260     11.510
## 42  2025-03-05 11.420     11.260
## 43  2025-03-06 11.030     11.420
## 44  2025-03-07 11.170     11.030
## 45  2025-03-10 10.960     11.170
## 46  2025-03-11 10.790     10.960
## 47  2025-03-12 11.060     10.790
## 48  2025-03-13 10.610     11.060
## 49  2025-03-14 10.750     10.610
## 50  2025-03-17 11.020     10.750
## 51  2025-03-18 11.200     11.020
## 52  2025-03-19 11.360     11.200
## 53  2025-03-20 10.880     11.360
## 54  2025-03-21 11.600     10.880
## 55  2025-03-24 12.190     11.600
## 56  2025-03-25 12.360     12.190
## 57  2025-03-26 12.100     12.360
## 58  2025-03-27 13.020     12.100
## 59  2025-03-28 12.410     13.020
## 60  2025-03-31 12.450     12.410
## 61  2025-04-01 13.280     12.450
## 62  2025-04-02 12.490     13.280
## 63  2025-04-03 11.530     12.490
## 64  2025-04-04 11.210     11.530
## 65  2025-04-07 11.210     11.210
## 66  2025-04-08 10.800     11.210
## 67  2025-04-09 11.770     10.800
## 68  2025-04-10 11.460     11.770
## 69  2025-04-11 11.470     11.460
## 70  2025-04-14 12.030     11.470
## 71  2025-04-15 11.910     12.030
## 72  2025-04-16 11.490     11.910
## 73  2025-04-17 11.600     11.490
## 74  2025-04-21 11.150     11.600
## 75  2025-04-22 11.360     11.150
## 76  2025-04-23 11.800     11.360
## 77  2025-04-24 12.090     11.800
## 78  2025-04-25 12.620     12.090
## 79  2025-04-28 13.190     12.620
## 80  2025-04-29 13.300     13.190
## 81  2025-04-30 13.660     13.300
## 82  2025-05-01 13.760     13.660
## 83  2025-05-02 13.830     13.760
## 84  2025-05-05 13.550     13.830
## 85  2025-05-06 13.500     13.550
## 86  2025-05-07 12.720     13.500
## 87  2025-05-08 13.680     12.720
## 88  2025-05-09 14.260     13.680
## 89  2025-05-12 14.640     14.260
## 90  2025-05-13 14.870     14.640
## 91  2025-05-14 14.820     14.870
## 92  2025-05-15 15.300     14.820
## 93  2025-05-16 15.810     15.300
## 94  2025-05-19 16.290     15.810
## 95  2025-05-20 16.920     16.290
## 96  2025-05-21 16.340     16.920
## 97  2025-05-22 15.910     16.340
## 98  2025-05-23 15.630     15.910
## 99  2025-05-27 15.370     15.630
## 100 2025-05-28 15.480     15.370
## 101 2025-05-29 15.005     15.480
## 102 2025-05-30 14.530     15.005
## 103 2025-06-02 14.100     14.530
## 104 2025-06-03 14.370     14.100
## 105 2025-06-04 14.010     14.370
## 106 2025-06-05 13.780     14.010
## 107 2025-06-06 14.000     13.780
## 108 2025-06-09 14.400     14.000
## 109 2025-06-10 14.400     14.400
## 110 2025-06-11 14.200     14.400
## 111 2025-06-12 13.910     14.200
## 112 2025-06-13 13.420     13.910
## 113 2025-06-16 13.760     13.420
## 114 2025-06-17 13.390     13.760
## 115 2025-06-18 13.770     13.390
## 116 2025-06-20 13.570     13.770
## 117 2025-06-23 13.650     13.570
## 118 2025-06-24 13.810     13.650
## 119 2025-06-25 13.760     13.810
## 120 2025-06-26 13.910     13.760
## 121 2025-06-27 13.600     13.910
## 122 2025-06-30 13.740     13.600
## 123 2025-07-01 13.470     13.740
## 124 2025-07-02 12.870     13.470
## 125 2025-07-03 13.070     12.870
## 126 2025-07-07 12.750     13.070
## 127 2025-07-08 13.130     12.750
## 128 2025-07-09 13.200     13.130
## 129 2025-07-10 13.320     13.200
## 130 2025-07-11 13.030     13.320
## 131 2025-07-14 12.750     13.030
## 132 2025-07-15 12.630     12.750
## 133 2025-07-16 12.390     12.630
## 134 2025-07-17 12.900     12.390
## 135 2025-07-18 13.700     12.900
## 136 2025-07-21 13.700     13.700
## 137 2025-07-22 14.120     13.700
## 138 2025-07-23 14.020     14.120
## 139 2025-07-24 13.820     14.020
## 140 2025-07-25 14.010     13.820
## 141 2025-07-28 13.780     14.010
## 142 2025-07-29 13.060     13.780
## 143 2025-07-30 13.030     13.060
## 144 2025-07-31 12.870     13.030
## 145 2025-08-01 12.380     12.870
## 146 2025-08-04 12.410     12.380
## 147 2025-08-05 12.150     12.410
## 148 2025-08-06 11.640     12.150
## 149 2025-08-07 12.070     11.640
## 150 2025-08-08 11.790     12.070
## 151 2025-08-11 11.930     11.790
## 152 2025-08-12 11.970     11.930
## 153 2025-08-13 12.280     11.970
## 154 2025-08-14 12.060     12.280
## 155 2025-08-15 12.240     12.060
## 156 2025-08-18 12.410     12.240
## 157 2025-08-19 12.250     12.410
## 158 2025-08-20 12.070     12.250
## 159 2025-08-21 12.120     12.070
## 160 2025-08-22 13.090     12.120
## 161 2025-08-25 13.110     13.090
## 162 2025-08-26 13.210     13.110
## 163 2025-08-27 13.220     13.210
## 164 2025-08-28 13.640     13.220
## 165 2025-08-29 13.570     13.640
## 166 2025-09-02 13.870     13.570
## 167 2025-09-03 14.440     13.870
## 168 2025-09-04 13.700     14.440
## 169 2025-09-05 14.210     13.700
## 170 2025-09-08 13.990     14.210
## 171 2025-09-09 13.940     13.990
select(stocks, date, volume) %>%
  mutate(volume_cumsum = cumsum(volume))
##           date    volume volume_cumsum
## 1   2025-01-02  30449400      30449400
## 2   2025-01-03 124581800     155031200
## 3   2025-01-06  58377100     213408300
## 4   2025-01-07  35938000     249346300
## 5   2025-01-08  33065300     282411600
## 6   2025-01-10  23209000     305620600
## 7   2025-01-13  28042700     333663300
## 8   2025-01-14  30031800     363695100
## 9   2025-01-15  28674500     392369600
## 10  2025-01-16  38996400     431366000
## 11  2025-01-17  65184000     496550000
## 12  2025-01-21  44540100     541090100
## 13  2025-01-22  35488200     576578300
## 14  2025-01-23  39181600     615759900
## 15  2025-01-24  31519400     647279300
## 16  2025-01-27  32343300     679622600
## 17  2025-01-28  23184600     702807200
## 18  2025-01-29  21378100     724185300
## 19  2025-01-30  17914700     742100000
## 20  2025-01-31  20333600     762433600
## 21  2025-02-03  21909900     784343500
## 22  2025-02-04  18953000     803296500
## 23  2025-02-05  13827200     817123700
## 24  2025-02-06  21519500     838643200
## 25  2025-02-07  16701800     855345000
## 26  2025-02-10  22456300     877801300
## 27  2025-02-11  25126200     902927500
## 28  2025-02-12  21507200     924434700
## 29  2025-02-13  27587500     952022200
## 30  2025-02-14  33953000     985975200
## 31  2025-02-18  39963200    1025938400
## 32  2025-02-19  28841200    1054779600
## 33  2025-02-20  53113600    1107893200
## 34  2025-02-21  70455100    1178348300
## 35  2025-02-24  56949900    1235298200
## 36  2025-02-25  36379100    1271677300
## 37  2025-02-26  29864400    1301541700
## 38  2025-02-27  31121300    1332663000
## 39  2025-02-28  30926800    1363589800
## 40  2025-03-03  27909700    1391499500
## 41  2025-03-04  31774700    1423274200
## 42  2025-03-05  19063300    1442337500
## 43  2025-03-06  23164800    1465502300
## 44  2025-03-07  27898100    1493400400
## 45  2025-03-10  29226300    1522626700
## 46  2025-03-11  25110900    1547737600
## 47  2025-03-12  22142000    1569879600
## 48  2025-03-13  25293800    1595173400
## 49  2025-03-14  19902000    1615075400
## 50  2025-03-17  22395400    1637470800
## 51  2025-03-18  32767000    1670237800
## 52  2025-03-19  20744300    1690982100
## 53  2025-03-20  29439100    1720421200
## 54  2025-03-21  36684600    1757105800
## 55  2025-03-24  33462400    1790568200
## 56  2025-03-25  22158000    1812726200
## 57  2025-03-26  27753600    1840479800
## 58  2025-03-27  62257100    1902736900
## 59  2025-03-28  35943500    1938680400
## 60  2025-03-31  29697100    1968377500
## 61  2025-04-01  45477400    2013854900
## 62  2025-04-02  54692600    2068547500
## 63  2025-04-03  38259500    2106807000
## 64  2025-04-04  34797900    2141604900
## 65  2025-04-07  40512200    2182117100
## 66  2025-04-08  41876000    2223993100
## 67  2025-04-09  43372900    2267366000
## 68  2025-04-10  25430700    2292796700
## 69  2025-04-11  22906900    2315703600
## 70  2025-04-14  26872000    2342575600
## 71  2025-04-15  21002700    2363578300
## 72  2025-04-16  33313100    2396891400
## 73  2025-04-17  16103300    2412994700
## 74  2025-04-21  24615700    2437610400
## 75  2025-04-22  23025700    2460636100
## 76  2025-04-23  27987800    2488623900
## 77  2025-04-24  19788600    2508412500
## 78  2025-04-25  24483100    2532895600
## 79  2025-04-28  33541000    2566436600
## 80  2025-04-29  18419200    2584855800
## 81  2025-04-30  48760500    2633616300
## 82  2025-05-01  31917000    2665533300
## 83  2025-05-02  27224000    2692757300
## 84  2025-05-05  25460100    2718217400
## 85  2025-05-06  35961300    2754178700
## 86  2025-05-07  56926300    2811105000
## 87  2025-05-08  50103700    2861208700
## 88  2025-05-09  50580800    2911789500
## 89  2025-05-12  35622500    2947412000
## 90  2025-05-13  35004700    2982416700
## 91  2025-05-14  47996500    3030413200
## 92  2025-05-15  55059200    3085472400
## 93  2025-05-16  32231900    3117704300
## 94  2025-05-19  43922000    3161626300
## 95  2025-05-20  63759100    3225385400
## 96  2025-05-21  46878400    3272263800
## 97  2025-05-22  28115800    3300379600
## 98  2025-05-23  21795000    3322174600
## 99  2025-05-27  36961400    3359136000
## 100 2025-05-28  23048100    3382184100
## 101 2025-05-29  25175200    3407359300
## 102 2025-05-30  40113300    3447472600
## 103 2025-06-02  27357400    3474830000
## 104 2025-06-03  22945600    3497775600
## 105 2025-06-04  26241100    3524016700
## 106 2025-06-05  34888200    3558904900
## 107 2025-06-06  24451500    3583356400
## 108 2025-06-09  27172700    3610529100
## 109 2025-06-10  19586300    3630115400
## 110 2025-06-11  20827200    3650942600
## 111 2025-06-12  14829200    3665771800
## 112 2025-06-13  26990400    3692762200
## 113 2025-06-16  26498600    3719260800
## 114 2025-06-17  21409600    3740670400
## 115 2025-06-18  15930900    3756601300
## 116 2025-06-20  28260200    3784861500
## 117 2025-06-23  22204000    3807065500
## 118 2025-06-24  17736500    3824802000
## 119 2025-06-25  14584900    3839386900
## 120 2025-06-26  17763100    3857150000
## 121 2025-06-27  27501900    3884651900
## 122 2025-06-30  18768700    3903420600
## 123 2025-07-01  30282100    3933702700
## 124 2025-07-02  42320400    3976023100
## 125 2025-07-03  21513400    3997536500
## 126 2025-07-07  34462300    4031998800
## 127 2025-07-08  28302900    4060301700
## 128 2025-07-09  16207100    4076508800
## 129 2025-07-10  20665200    4097174000
## 130 2025-07-11  21163700    4118337700
## 131 2025-07-14  28208300    4146546000
## 132 2025-07-15  27878300    4174424300
## 133 2025-07-16  41553000    4215977300
## 134 2025-07-17  52110700    4268088000
## 135 2025-07-18  48648400    4316736400
## 136 2025-07-21  35627000    4352363400
## 137 2025-07-22  45193500    4397556900
## 138 2025-07-23  38372200    4435929100
## 139 2025-07-24  39294600    4475223700
## 140 2025-07-25  51134500    4526358200
## 141 2025-07-28  22639700    4548997900
## 142 2025-07-29  38882200    4587880100
## 143 2025-07-30  37652100    4625532200
## 144 2025-07-31  37911500    4663443700
## 145 2025-08-01  42548400    4705992100
## 146 2025-08-04  45497100    4751489200
## 147 2025-08-05  67997400    4819486600
## 148 2025-08-06  67072700    4886559300
## 149 2025-08-07  33230100    4919789400
## 150 2025-08-08  31601200    4951390600
## 151 2025-08-11  40349800    4991740400
## 152 2025-08-12  33584100    5025324500
## 153 2025-08-13  25094800    5050419300
## 154 2025-08-14  38053200    5088472500
## 155 2025-08-15  51961800    5140434300
## 156 2025-08-18  38394400    5178828700
## 157 2025-08-19  48702000    5227530700
## 158 2025-08-20  45077400    5272608100
## 159 2025-08-21  42737000    5315345100
## 160 2025-08-22  64603100    5379948200
## 161 2025-08-25  46841300    5426789500
## 162 2025-08-26  53099500    5479889000
## 163 2025-08-27  38969800    5518858800
## 164 2025-08-28  31625800    5550484600
## 165 2025-08-29  39634100    5590118700
## 166 2025-09-02  51257800    5641376500
## 167 2025-09-03  77654700    5719031200
## 168 2025-09-04  82734000    5801765200
## 169 2025-09-05  87135100    5888900300
## 170 2025-09-08  54560700    5943461000
## 171 2025-09-09  30599700    5974060700

Sumarize with groups

stocks %>%
  mutate(gain = close - open) %>%
  group_by(round(gain, 0)) %>%
  summarise(count = n()) %>%
  arrange(desc(count))
## # A tibble: 4 × 2
##   `round(gain, 0)` count
##              <dbl> <int>
## 1                0   138
## 2                1    20
## 3               -1    12
## 4                3     1
monthly_gains <- stocks %>%
  mutate(month = format(date, "%Y-%m")) %>%
  group_by(month) %>%
  summarise(avg_gain = mean(close - open, na.rm = TRUE)) %>%
  ungroup()
stocks %>%
  mutate(year = format(date, "%Y"),
         month = format(date, "%m"),
         day = format(date, "%d")) %>%
  group_by(year, month, day) %>%
  summarise(count = n(), .groups = "drop")
## # A tibble: 171 × 4
##    year  month day   count
##    <chr> <chr> <chr> <int>
##  1 2025  01    02        1
##  2 2025  01    03        1
##  3 2025  01    06        1
##  4 2025  01    07        1
##  5 2025  01    08        1
##  6 2025  01    10        1
##  7 2025  01    13        1
##  8 2025  01    14        1
##  9 2025  01    15        1
## 10 2025  01    16        1
## # ℹ 161 more rows