Updates the R code in the examples for the latest tidyverts package versions on CRAN.

Former-commit-id: 5518583fce
This commit is contained in:
Hong Ooi 2020-06-20 06:27:50 +10:00 коммит произвёл GitHub
Родитель 454caeba34
Коммит 6e3506738d
12 изменённых файлов: 319 добавлений и 345 удалений

Просмотреть файл

@ -14,13 +14,13 @@ get_forecasts <- function(mable, newdata, ...)
keyvars <- key_vars(fcast)
keyvars <- keyvars[-length(keyvars)]
indexvar <- index_var(fcast)
fcastvar <- as.character(attr(fcast, "response")[[1]])
fcastvar <- names(fcast)[length(keyvars) + 3]
fcast <- fcast %>%
as_tibble() %>%
pivot_wider(
id_cols=all_of(c(keyvars, indexvar)),
names_from=.model,
values_from=all_of(fcastvar))
values_from=.mean)
select(newdata, !!keyvars, !!indexvar, !!fcastvar) %>%
rename(.response=!!fcastvar) %>%
inner_join(fcast)

Просмотреть файл

@ -69,6 +69,7 @@ library(ggplot2)
oj_data %>%
filter(store < 25, brand < 5) %>%
mutate(week=as.Date(week)) %>%
ggplot(aes(x=week, y=logmove)) +
geom_line() +
scale_x_date(labels=NULL) +

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -53,7 +53,8 @@ oj_fcast_basic <- parallel::clusterMap(cl, get_forecasts, oj_modelset_basic, oj_
save_objects(oj_modelset_basic, oj_fcast_basic,
example="grocery_sales", file="model_basic.Rdata")
do.call(rbind, oj_fcast_basic) %>%
oj_fcast_basic %>%
bind_rows() %>%
mutate_at(-(1:3), exp) %>%
eval_forecasts()
```
@ -80,7 +81,8 @@ destroy_cluster(cl)
save_objects(oj_modelset_ets, oj_fcast_ets,
example="grocery_sales", file="model_ets.Rdata")
do.call(rbind, oj_fcast_ets) %>%
oj_fcast_ets %>%
bind_rows() %>%
mutate_at(-(1:3), exp) %>%
eval_forecasts()
```

Просмотреть файл

@ -247,7 +247,7 @@ summary {
<p>This lets us speed up the training significantly. While the <code>fable::model</code> function can fit multiple models in parallel, we will run it sequentially here and instead parallelise by dataset. This avoids contention for cores, and also results in the simplest code. As a guard against returning invalid results, we also specify the argument <code>.safely=FALSE</code>; this forces <code>model</code> to throw an error if a model algorithm fails.</p>
<!-- rnb-text-end -->
<!-- rnb-chunk-begin -->
<!-- rnb-source-begin eyJkYXRhIjpbInNyY2RpciA8LSBoZXJlOjpoZXJlKFwiUl91dGlsc1wiKSIsImZvcihzcmMgaW4gZGlyKHNyY2RpciwgZnVsbC5uYW1lcz1UUlVFKSkgc291cmNlKHNyYykiLCIiLCJsb2FkX29iamVjdHMoXCJncm9jZXJ5X3NhbGVzXCIsIFwiZGF0YS5SZGF0YVwiKSIsIiIsImNsIDwtIG1ha2VfY2x1c3RlcihsaWJzPWMoXCJ0aWR5clwiLCBcImRwbHlyXCIsIFwiZmFibGVcIiwgXCJ0c2liYmxlXCIsIFwiZmVhc3RzXCIpKSIsIiIsIm9qX21vZGVsc2V0X2Jhc2ljIDwtIHBhcmFsbGVsOjpwYXJMYXBwbHkoY2wsIG9qX3RyYWluLCBmdW5jdGlvbihkZilcbntcbiAgICBtb2RlbChkZixcbiAgICAgICAgbWVhbj1NRUFOKGxvZ21vdmUpLFxuICAgICAgICBuYWl2ZT1OQUlWRShsb2dtb3ZlKSxcbiAgICAgICAgZHJpZnQ9UlcobG9nbW92ZSB+IGRyaWZ0KCkpLFxuICAgICAgICBhcmltYT1BUklNQShsb2dtb3ZlIH4gcGRxKCkgKyBQRFEoMCwgMCwgMCkpLFxuICAgICAgICAuc2FmZWx5PUZBTFNFXG4gICAgKVxufSkiLCJval9mY2FzdF9iYXNpYyA8LSBwYXJhbGxlbDo6Y2x1c3Rlck1hcChjbCwgZ2V0X2ZvcmVjYXN0cywgb2pfbW9kZWxzZXRfYmFzaWMsIG9qX3Rlc3QpIiwiIiwic2F2ZV9vYmplY3RzKG9qX21vZGVsc2V0X2Jhc2ljLCBval9mY2FzdF9iYXNpYyxcbiAgICAgICAgICAgICBleGFtcGxlPVwiZ3JvY2VyeV9zYWxlc1wiLCBmaWxlPVwibW9kZWxfYmFzaWMuUmRhdGFcIikiLCIiLCJkby5jYWxsKHJiaW5kLCBval9mY2FzdF9iYXNpYykgJT4lXG4gICAgbXV0YXRlX2F0KC0oMTozKSwgZXhwKSAlPiVcbiAgICBldmFsX2ZvcmVjYXN0cygpIl19 -->
<!-- rnb-source-begin eyJkYXRhIjpbInNyY2RpciA8LSBoZXJlOjpoZXJlKFwiUl91dGlsc1wiKSIsImZvcihzcmMgaW4gZGlyKHNyY2RpciwgZnVsbC5uYW1lcz1UUlVFKSkgc291cmNlKHNyYykiLCIiLCJsb2FkX29iamVjdHMoXCJncm9jZXJ5X3NhbGVzXCIsIFwiZGF0YS5SZGF0YVwiKSIsIiIsImNsIDwtIG1ha2VfY2x1c3RlcihsaWJzPWMoXCJ0aWR5clwiLCBcImRwbHlyXCIsIFwiZmFibGVcIiwgXCJ0c2liYmxlXCIsIFwiZmVhc3RzXCIpKSIsIiIsIm9qX21vZGVsc2V0X2Jhc2ljIDwtIHBhcmFsbGVsOjpwYXJMYXBwbHkoY2wsIG9qX3RyYWluLCBmdW5jdGlvbihkZilcbntcbiAgICBtb2RlbChkZixcbiAgICAgICAgbWVhbj1NRUFOKGxvZ21vdmUpLFxuICAgICAgICBuYWl2ZT1OQUlWRShsb2dtb3ZlKSxcbiAgICAgICAgZHJpZnQ9UlcobG9nbW92ZSB+IGRyaWZ0KCkpLFxuICAgICAgICBhcmltYT1BUklNQShsb2dtb3ZlIH4gcGRxKCkgKyBQRFEoMCwgMCwgMCkpLFxuICAgICAgICAuc2FmZWx5PUZBTFNFXG4gICAgKVxufSkiLCJval9mY2FzdF9iYXNpYyA8LSBwYXJhbGxlbDo6Y2x1c3Rlck1hcChjbCwgZ2V0X2ZvcmVjYXN0cywgb2pfbW9kZWxzZXRfYmFzaWMsIG9qX3Rlc3QpIiwiIiwic2F2ZV9vYmplY3RzKG9qX21vZGVsc2V0X2Jhc2ljLCBval9mY2FzdF9iYXNpYyxcbiAgICAgICAgICAgICBleGFtcGxlPVwiZ3JvY2VyeV9zYWxlc1wiLCBmaWxlPVwibW9kZWxfYmFzaWMuUmRhdGFcIikiLCIiLCJval9mY2FzdF9iYXNpYyAlPiVcbiAgICBiaW5kX3Jvd3MoKSAlPiVcbiAgICBtdXRhdGVfYXQoLSgxOjMpLCBleHApICU+JVxuICAgIGV2YWxfZm9yZWNhc3RzKCkiXX0= -->
<pre class="r"><code>srcdir &lt;- here::here(&quot;R_utils&quot;)
for(src in dir(srcdir, full.names=TRUE)) source(src)
@ -270,7 +270,8 @@ oj_fcast_basic &lt;- parallel::clusterMap(cl, get_forecasts, oj_modelset_basic,
save_objects(oj_modelset_basic, oj_fcast_basic,
example=&quot;grocery_sales&quot;, file=&quot;model_basic.Rdata&quot;)
do.call(rbind, oj_fcast_basic) %&gt;%
oj_fcast_basic %&gt;%
bind_rows() %&gt;%
mutate_at(-(1:3), exp) %&gt;%
eval_forecasts()</code></pre>
<!-- rnb-source-end -->
@ -285,7 +286,7 @@ do.call(rbind, oj_fcast_basic) %&gt;%
<p>Having fit some basic models, we can also try an exponential smoothing model, fit using the <code>ETS</code> function. Unlike the others, <code>ETS</code> does not currently support time series with missing values; we therefore have to use one of the other models to impute missing values first via the <code>interpolate</code> function.</p>
<!-- rnb-text-end -->
<!-- rnb-chunk-begin -->
<!-- rnb-source-begin eyJkYXRhIjpbIm9qX21vZGVsc2V0X2V0cyA8LSBwYXJhbGxlbDo6Y2x1c3Rlck1hcChjbCwgZnVuY3Rpb24oZGYsIGJhc2ljbW9kKVxue1xuICAgIGRmICU+JVxuICAgICAgICBpbnRlcnBvbGF0ZShvYmplY3Q9c2VsZWN0KGJhc2ljbW9kLCAtYyhtZWFuLCBuYWl2ZSwgZHJpZnQpKSkgJT4lXG4gICAgICAgIG1vZGVsKFxuICAgICAgICAgICAgZXRzPUVUUyhsb2dtb3ZlIH4gZXJyb3IoXCJBXCIpICsgdHJlbmQoXCJBXCIpICsgc2Vhc29uKFwiTlwiKSksXG4gICAgICAgICAgICAuc2FmZWx5PUZBTFNFXG4gICAgICAgIClcbn0sIG9qX3RyYWluLCBval9tb2RlbHNldF9iYXNpYykiLCIiLCJval9mY2FzdF9ldHMgPC0gcGFyYWxsZWw6OmNsdXN0ZXJNYXAoY2wsIGdldF9mb3JlY2FzdHMsIG9qX21vZGVsc2V0X2V0cywgb2pfdGVzdCkiLCIiLCJkZXN0cm95X2NsdXN0ZXIoY2wpIiwiIiwic2F2ZV9vYmplY3RzKG9qX21vZGVsc2V0X2V0cywgb2pfZmNhc3RfZXRzLFxuICAgICAgICAgICAgIGV4YW1wbGU9XCJncm9jZXJ5X3NhbGVzXCIsIGZpbGU9XCJtb2RlbF9ldHMuUmRhdGFcIikiLCIiLCJkby5jYWxsKHJiaW5kLCBval9mY2FzdF9ldHMpICU+JVxuICAgIG11dGF0ZV9hdCgtKDE6MyksIGV4cCkgJT4lXG4gICAgZXZhbF9mb3JlY2FzdHMoKSJdfQ== -->
<!-- rnb-source-begin eyJkYXRhIjpbIm9qX21vZGVsc2V0X2V0cyA8LSBwYXJhbGxlbDo6Y2x1c3Rlck1hcChjbCwgZnVuY3Rpb24oZGYsIGJhc2ljbW9kKVxue1xuICAgIGRmICU+JVxuICAgICAgICBpbnRlcnBvbGF0ZShvYmplY3Q9c2VsZWN0KGJhc2ljbW9kLCAtYyhtZWFuLCBuYWl2ZSwgZHJpZnQpKSkgJT4lXG4gICAgICAgIG1vZGVsKFxuICAgICAgICAgICAgZXRzPUVUUyhsb2dtb3ZlIH4gZXJyb3IoXCJBXCIpICsgdHJlbmQoXCJBXCIpICsgc2Vhc29uKFwiTlwiKSksXG4gICAgICAgICAgICAuc2FmZWx5PUZBTFNFXG4gICAgICAgIClcbn0sIG9qX3RyYWluLCBval9tb2RlbHNldF9iYXNpYykiLCIiLCJval9mY2FzdF9ldHMgPC0gcGFyYWxsZWw6OmNsdXN0ZXJNYXAoY2wsIGdldF9mb3JlY2FzdHMsIG9qX21vZGVsc2V0X2V0cywgb2pfdGVzdCkiLCIiLCJkZXN0cm95X2NsdXN0ZXIoY2wpIiwiIiwic2F2ZV9vYmplY3RzKG9qX21vZGVsc2V0X2V0cywgb2pfZmNhc3RfZXRzLFxuICAgICAgICAgICAgIGV4YW1wbGU9XCJncm9jZXJ5X3NhbGVzXCIsIGZpbGU9XCJtb2RlbF9ldHMuUmRhdGFcIikiLCIiLCJval9mY2FzdF9ldHMgJT4lXG4gICAgYmluZF9yb3dzKCkgJT4lXG4gICAgbXV0YXRlX2F0KC0oMTozKSwgZXhwKSAlPiVcbiAgICBldmFsX2ZvcmVjYXN0cygpIl19 -->
<pre class="r"><code>oj_modelset_ets &lt;- parallel::clusterMap(cl, function(df, basicmod)
{
df %&gt;%
@ -303,7 +304,8 @@ destroy_cluster(cl)
save_objects(oj_modelset_ets, oj_fcast_ets,
example=&quot;grocery_sales&quot;, file=&quot;model_ets.Rdata&quot;)
do.call(rbind, oj_fcast_ets) %&gt;%
oj_fcast_ets %&gt;%
bind_rows() %&gt;%
mutate_at(-(1:3), exp) %&gt;%
eval_forecasts()</code></pre>
<!-- rnb-source-end -->
@ -317,7 +319,7 @@ do.call(rbind, oj_fcast_ets) %&gt;%
<p>The ETS model does <em>worse</em> than the ARIMA model, something that should not be a surprise given the lack of strong seasonality and trend in this dataset. We conclude that any simple univariate approach is unlikely to do well.</p>
<!-- rnb-text-end -->
<div id="rmd-source-code">LS0tCnRpdGxlOiBCYXNpYyBtb2RlbHMKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKX0NvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLl88YnIvPgpfTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLl8KCmBgYHtyLCBlY2hvPUZBTFNFLCByZXN1bHRzPSJoaWRlIiwgbWVzc2FnZT1GQUxTRX0KbGlicmFyeSh0aWR5cikKbGlicmFyeShkcGx5cikKbGlicmFyeSh0c2liYmxlKQpsaWJyYXJ5KGZlYXN0cykKbGlicmFyeShmYWJsZSkKYGBgCgpXZSBmaXQgc29tZSBzaW1wbGUgbW9kZWxzIHRvIHRoZSBvcmFuZ2UganVpY2UgZGF0YSBmb3IgaWxsdXN0cmF0aXZlIHB1cnBvc2VzLiBIZXJlLCBlYWNoIG1vZGVsIGlzIGFjdHVhbGx5IGEgX2dyb3VwXyBvZiBtb2RlbHMsIG9uZSBmb3IgZWFjaCBjb21iaW5hdGlvbiBvZiBzdG9yZSBhbmQgYnJhbmQuIFRoaXMgaXMgdGhlIHN0YW5kYXJkIGFwcHJvYWNoIHRha2VuIGluIHN0YXRpc3RpY2FsIGZvcmVjYXN0aW5nLCBhbmQgaXMgc3VwcG9ydGVkIG91dC1vZi10aGUtYm94IGJ5IHRoZSB0aWR5dmVydHMgZnJhbWV3b3JrLgoKLSBgbWVhbmA6IFRoaXMgaXMganVzdCBhIHNpbXBsZSBtZWFuLgotIGBuYWl2ZWA6IEEgcmFuZG9tIHdhbGsgbW9kZWwgd2l0aG91dCBhbnkgb3RoZXIgY29tcG9uZW50cy4gVGhpcyBhbW91bnRzIHRvIHNldHRpbmcgYWxsIGZvcmVjYXN0IHZhbHVlcyB0byB0aGUgbGFzdCBvYnNlcnZlZCB2YWx1ZS4KLSBgZHJpZnRgOiBUaGlzIGFkanVzdHMgdGhlIGBuYWl2ZWAgbW9kZWwgdG8gaW5jb3Jwb3JhdGUgYSBzdHJhaWdodC1saW5lIHRyZW5kLgotIGBhcmltYWA6IEFuIEFSSU1BIG1vZGVsIHdpdGggdGhlIHBhcmFtZXRlciB2YWx1ZXMgZXN0aW1hdGVkIGZyb20gdGhlIGRhdGEuCgpOb3RlIHRoYXQgdGhlIG1vZGVsIHRyYWluaW5nIHByb2Nlc3MgaXMgZW1iYXJyYXNzaW5nbHkgcGFyYWxsZWwgb24gMyBsZXZlbHM6CgotIFdlIGhhdmUgbXVsdGlwbGUgaW5kZXBlbmRlbnQgdHJhaW5pbmcgZGF0YXNldHM7Ci0gRm9yIHdoaWNoIHdlIGZpdCBtdWx0aXBsZSBpbmRlcGVuZGVudCBtb2RlbHM7Ci0gV2l0aGluIHdoaWNoIHdlIGhhdmUgaW5kZXBlbmRlbnQgc3ViLW1vZGVscyBmb3IgZWFjaCBzdG9yZSBhbmQgYnJhbmQuCgpUaGlzIGxldHMgdXMgc3BlZWQgdXAgdGhlIHRyYWluaW5nIHNpZ25pZmljYW50bHkuIFdoaWxlIHRoZSBgZmFibGU6Om1vZGVsYCBmdW5jdGlvbiBjYW4gZml0IG11bHRpcGxlIG1vZGVscyBpbiBwYXJhbGxlbCwgd2Ugd2lsbCBydW4gaXQgc2VxdWVudGlhbGx5IGhlcmUgYW5kIGluc3RlYWQgcGFyYWxsZWxpc2UgYnkgZGF0YXNldC4gVGhpcyBhdm9pZHMgY29udGVudGlvbiBmb3IgY29yZXMsIGFuZCBhbHNvIHJlc3VsdHMgaW4gdGhlIHNpbXBsZXN0IGNvZGUuIEFzIGEgZ3VhcmQgYWdhaW5zdCByZXR1cm5pbmcgaW52YWxpZCByZXN1bHRzLCB3ZSBhbHNvIHNwZWNpZnkgdGhlIGFyZ3VtZW50IGAuc2FmZWx5PUZBTFNFYDsgdGhpcyBmb3JjZXMgYG1vZGVsYCB0byB0aHJvdyBhbiBlcnJvciBpZiBhIG1vZGVsIGFsZ29yaXRobSBmYWlscy4KCmBgYHtyfQpzcmNkaXIgPC0gaGVyZTo6aGVyZSgiUl91dGlscyIpCmZvcihzcmMgaW4gZGlyKHNyY2RpciwgZnVsbC5uYW1lcz1UUlVFKSkgc291cmNlKHNyYykKCmxvYWRfb2JqZWN0cygiZ3JvY2VyeV9zYWxlcyIsICJkYXRhLlJkYXRhIikKCmNsIDwtIG1ha2VfY2x1c3RlcihsaWJzPWMoInRpZHlyIiwgImRwbHlyIiwgImZhYmxlIiwgInRzaWJibGUiLCAiZmVhc3RzIikpCgpval9tb2RlbHNldF9iYXNpYyA8LSBwYXJhbGxlbDo6cGFyTGFwcGx5KGNsLCBval90cmFpbiwgZnVuY3Rpb24oZGYpCnsKICAgIG1vZGVsKGRmLAogICAgICAgIG1lYW49TUVBTihsb2dtb3ZlKSwKICAgICAgICBuYWl2ZT1OQUlWRShsb2dtb3ZlKSwKICAgICAgICBkcmlmdD1SVyhsb2dtb3ZlIH4gZHJpZnQoKSksCiAgICAgICAgYXJpbWE9QVJJTUEobG9nbW92ZSB+IHBkcSgpICsgUERRKDAsIDAsIDApKSwKICAgICAgICAuc2FmZWx5PUZBTFNFCiAgICApCn0pCm9qX2ZjYXN0X2Jhc2ljIDwtIHBhcmFsbGVsOjpjbHVzdGVyTWFwKGNsLCBnZXRfZm9yZWNhc3RzLCBval9tb2RlbHNldF9iYXNpYywgb2pfdGVzdCkKCnNhdmVfb2JqZWN0cyhval9tb2RlbHNldF9iYXNpYywgb2pfZmNhc3RfYmFzaWMsCiAgICAgICAgICAgICBleGFtcGxlPSJncm9jZXJ5X3NhbGVzIiwgZmlsZT0ibW9kZWxfYmFzaWMuUmRhdGEiKQoKZG8uY2FsbChyYmluZCwgb2pfZmNhc3RfYmFzaWMpICU+JQogICAgbXV0YXRlX2F0KC0oMTozKSwgZXhwKSAlPiUKICAgIGV2YWxfZm9yZWNhc3RzKCkKYGBgCgpUaGUgQVJJTUEgbW9kZWwgZG9lcyB0aGUgYmVzdCBvZiB0aGUgc2ltcGxlIG1vZGVscywgYnV0IG5vdCBhbnkgYmV0dGVyIHRoYW4gYSBzaW1wbGUgbWVhbi4KCkhhdmluZyBmaXQgc29tZSBiYXNpYyBtb2RlbHMsIHdlIGNhbiBhbHNvIHRyeSBhbiBleHBvbmVudGlhbCBzbW9vdGhpbmcgbW9kZWwsIGZpdCB1c2luZyB0aGUgYEVUU2AgZnVuY3Rpb24uIFVubGlrZSB0aGUgb3RoZXJzLCBgRVRTYCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCB0aW1lIHNlcmllcyB3aXRoIG1pc3NpbmcgdmFsdWVzOyB3ZSB0aGVyZWZvcmUgaGF2ZSB0byB1c2Ugb25lIG9mIHRoZSBvdGhlciBtb2RlbHMgdG8gaW1wdXRlIG1pc3NpbmcgdmFsdWVzIGZpcnN0IHZpYSB0aGUgYGludGVycG9sYXRlYCBmdW5jdGlvbi4KCmBgYHtyfQpval9tb2RlbHNldF9ldHMgPC0gcGFyYWxsZWw6OmNsdXN0ZXJNYXAoY2wsIGZ1bmN0aW9uKGRmLCBiYXNpY21vZCkKewogICAgZGYgJT4lCiAgICAgICAgaW50ZXJwb2xhdGUob2JqZWN0PXNlbGVjdChiYXNpY21vZCwgLWMobWVhbiwgbmFpdmUsIGRyaWZ0KSkpICU+JQogICAgICAgIG1vZGVsKAogICAgICAgICAgICBldHM9RVRTKGxvZ21vdmUgfiBlcnJvcigiQSIpICsgdHJlbmQoIkEiKSArIHNlYXNvbigiTiIpKSwKICAgICAgICAgICAgLnNhZmVseT1GQUxTRQogICAgICAgICkKfSwgb2pfdHJhaW4sIG9qX21vZGVsc2V0X2Jhc2ljKQoKb2pfZmNhc3RfZXRzIDwtIHBhcmFsbGVsOjpjbHVzdGVyTWFwKGNsLCBnZXRfZm9yZWNhc3RzLCBval9tb2RlbHNldF9ldHMsIG9qX3Rlc3QpCgpkZXN0cm95X2NsdXN0ZXIoY2wpCgpzYXZlX29iamVjdHMob2pfbW9kZWxzZXRfZXRzLCBval9mY2FzdF9ldHMsCiAgICAgICAgICAgICBleGFtcGxlPSJncm9jZXJ5X3NhbGVzIiwgZmlsZT0ibW9kZWxfZXRzLlJkYXRhIikKCmRvLmNhbGwocmJpbmQsIG9qX2ZjYXN0X2V0cykgJT4lCiAgICBtdXRhdGVfYXQoLSgxOjMpLCBleHApICU+JQogICAgZXZhbF9mb3JlY2FzdHMoKQpgYGAKClRoZSBFVFMgbW9kZWwgZG9lcyBfd29yc2VfIHRoYW4gdGhlIEFSSU1BIG1vZGVsLCBzb21ldGhpbmcgdGhhdCBzaG91bGQgbm90IGJlIGEgc3VycHJpc2UgZ2l2ZW4gdGhlIGxhY2sgb2Ygc3Ryb25nIHNlYXNvbmFsaXR5IGFuZCB0cmVuZCBpbiB0aGlzIGRhdGFzZXQuIFdlIGNvbmNsdWRlIHRoYXQgYW55IHNpbXBsZSB1bml2YXJpYXRlIGFwcHJvYWNoIGlzIHVubGlrZWx5IHRvIGRvIHdlbGwuCg==</div>
<div id="rmd-source-code">LS0tCnRpdGxlOiBCYXNpYyBtb2RlbHMKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKX0NvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLl88YnIvPgpfTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLl8KCmBgYHtyLCBlY2hvPUZBTFNFLCByZXN1bHRzPSJoaWRlIiwgbWVzc2FnZT1GQUxTRX0KbGlicmFyeSh0aWR5cikKbGlicmFyeShkcGx5cikKbGlicmFyeSh0c2liYmxlKQpsaWJyYXJ5KGZlYXN0cykKbGlicmFyeShmYWJsZSkKbGlicmFyeSh1cmNhKQpgYGAKCldlIGZpdCBzb21lIHNpbXBsZSBtb2RlbHMgdG8gdGhlIG9yYW5nZSBqdWljZSBkYXRhIGZvciBpbGx1c3RyYXRpdmUgcHVycG9zZXMuIEhlcmUsIGVhY2ggbW9kZWwgaXMgYWN0dWFsbHkgYSBfZ3JvdXBfIG9mIG1vZGVscywgb25lIGZvciBlYWNoIGNvbWJpbmF0aW9uIG9mIHN0b3JlIGFuZCBicmFuZC4gVGhpcyBpcyB0aGUgc3RhbmRhcmQgYXBwcm9hY2ggdGFrZW4gaW4gc3RhdGlzdGljYWwgZm9yZWNhc3RpbmcsIGFuZCBpcyBzdXBwb3J0ZWQgb3V0LW9mLXRoZS1ib3ggYnkgdGhlIHRpZHl2ZXJ0cyBmcmFtZXdvcmsuCgotIGBtZWFuYDogVGhpcyBpcyBqdXN0IGEgc2ltcGxlIG1lYW4uCi0gYG5haXZlYDogQSByYW5kb20gd2FsayBtb2RlbCB3aXRob3V0IGFueSBvdGhlciBjb21wb25lbnRzLiBUaGlzIGFtb3VudHMgdG8gc2V0dGluZyBhbGwgZm9yZWNhc3QgdmFsdWVzIHRvIHRoZSBsYXN0IG9ic2VydmVkIHZhbHVlLgotIGBkcmlmdGA6IFRoaXMgYWRqdXN0cyB0aGUgYG5haXZlYCBtb2RlbCB0byBpbmNvcnBvcmF0ZSBhIHN0cmFpZ2h0LWxpbmUgdHJlbmQuCi0gYGFyaW1hYDogQW4gQVJJTUEgbW9kZWwgd2l0aCB0aGUgcGFyYW1ldGVyIHZhbHVlcyBlc3RpbWF0ZWQgZnJvbSB0aGUgZGF0YS4KCk5vdGUgdGhhdCB0aGUgbW9kZWwgdHJhaW5pbmcgcHJvY2VzcyBpcyBlbWJhcnJhc3NpbmdseSBwYXJhbGxlbCBvbiAzIGxldmVsczoKCi0gV2UgaGF2ZSBtdWx0aXBsZSBpbmRlcGVuZGVudCB0cmFpbmluZyBkYXRhc2V0czsKLSBGb3Igd2hpY2ggd2UgZml0IG11bHRpcGxlIGluZGVwZW5kZW50IG1vZGVsczsKLSBXaXRoaW4gd2hpY2ggd2UgaGF2ZSBpbmRlcGVuZGVudCBzdWItbW9kZWxzIGZvciBlYWNoIHN0b3JlIGFuZCBicmFuZC4KClRoaXMgbGV0cyB1cyBzcGVlZCB1cCB0aGUgdHJhaW5pbmcgc2lnbmlmaWNhbnRseS4gV2hpbGUgdGhlIGBmYWJsZTo6bW9kZWxgIGZ1bmN0aW9uIGNhbiBmaXQgbXVsdGlwbGUgbW9kZWxzIGluIHBhcmFsbGVsLCB3ZSB3aWxsIHJ1biBpdCBzZXF1ZW50aWFsbHkgaGVyZSBhbmQgaW5zdGVhZCBwYXJhbGxlbGlzZSBieSBkYXRhc2V0LiBUaGlzIGF2b2lkcyBjb250ZW50aW9uIGZvciBjb3JlcywgYW5kIGFsc28gcmVzdWx0cyBpbiB0aGUgc2ltcGxlc3QgY29kZS4gQXMgYSBndWFyZCBhZ2FpbnN0IHJldHVybmluZyBpbnZhbGlkIHJlc3VsdHMsIHdlIGFsc28gc3BlY2lmeSB0aGUgYXJndW1lbnQgYC5zYWZlbHk9RkFMU0VgOyB0aGlzIGZvcmNlcyBgbW9kZWxgIHRvIHRocm93IGFuIGVycm9yIGlmIGEgbW9kZWwgYWxnb3JpdGhtIGZhaWxzLgoKYGBge3J9CnNyY2RpciA8LSBoZXJlOjpoZXJlKCJSX3V0aWxzIikKZm9yKHNyYyBpbiBkaXIoc3JjZGlyLCBmdWxsLm5hbWVzPVRSVUUpKSBzb3VyY2Uoc3JjKQoKbG9hZF9vYmplY3RzKCJncm9jZXJ5X3NhbGVzIiwgImRhdGEuUmRhdGEiKQoKY2wgPC0gbWFrZV9jbHVzdGVyKGxpYnM9YygidGlkeXIiLCAiZHBseXIiLCAiZmFibGUiLCAidHNpYmJsZSIsICJmZWFzdHMiKSkKCm9qX21vZGVsc2V0X2Jhc2ljIDwtIHBhcmFsbGVsOjpwYXJMYXBwbHkoY2wsIG9qX3RyYWluLCBmdW5jdGlvbihkZikKewogICAgbW9kZWwoZGYsCiAgICAgICAgbWVhbj1NRUFOKGxvZ21vdmUpLAogICAgICAgIG5haXZlPU5BSVZFKGxvZ21vdmUpLAogICAgICAgIGRyaWZ0PVJXKGxvZ21vdmUgfiBkcmlmdCgpKSwKICAgICAgICBhcmltYT1BUklNQShsb2dtb3ZlIH4gcGRxKCkgKyBQRFEoMCwgMCwgMCkpLAogICAgICAgIC5zYWZlbHk9RkFMU0UKICAgICkKfSkKb2pfZmNhc3RfYmFzaWMgPC0gcGFyYWxsZWw6OmNsdXN0ZXJNYXAoY2wsIGdldF9mb3JlY2FzdHMsIG9qX21vZGVsc2V0X2Jhc2ljLCBval90ZXN0KQoKc2F2ZV9vYmplY3RzKG9qX21vZGVsc2V0X2Jhc2ljLCBval9mY2FzdF9iYXNpYywKICAgICAgICAgICAgIGV4YW1wbGU9Imdyb2Nlcnlfc2FsZXMiLCBmaWxlPSJtb2RlbF9iYXNpYy5SZGF0YSIpCgpval9mY2FzdF9iYXNpYyAlPiUKICAgIGJpbmRfcm93cygpICU+JQogICAgbXV0YXRlX2F0KC0oMTozKSwgZXhwKSAlPiUKICAgIGV2YWxfZm9yZWNhc3RzKCkKYGBgCgpUaGUgQVJJTUEgbW9kZWwgZG9lcyB0aGUgYmVzdCBvZiB0aGUgc2ltcGxlIG1vZGVscywgYnV0IG5vdCBhbnkgYmV0dGVyIHRoYW4gYSBzaW1wbGUgbWVhbi4KCkhhdmluZyBmaXQgc29tZSBiYXNpYyBtb2RlbHMsIHdlIGNhbiBhbHNvIHRyeSBhbiBleHBvbmVudGlhbCBzbW9vdGhpbmcgbW9kZWwsIGZpdCB1c2luZyB0aGUgYEVUU2AgZnVuY3Rpb24uIFVubGlrZSB0aGUgb3RoZXJzLCBgRVRTYCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCB0aW1lIHNlcmllcyB3aXRoIG1pc3NpbmcgdmFsdWVzOyB3ZSB0aGVyZWZvcmUgaGF2ZSB0byB1c2Ugb25lIG9mIHRoZSBvdGhlciBtb2RlbHMgdG8gaW1wdXRlIG1pc3NpbmcgdmFsdWVzIGZpcnN0IHZpYSB0aGUgYGludGVycG9sYXRlYCBmdW5jdGlvbi4KCmBgYHtyfQpval9tb2RlbHNldF9ldHMgPC0gcGFyYWxsZWw6OmNsdXN0ZXJNYXAoY2wsIGZ1bmN0aW9uKGRmLCBiYXNpY21vZCkKewogICAgZGYgJT4lCiAgICAgICAgaW50ZXJwb2xhdGUob2JqZWN0PXNlbGVjdChiYXNpY21vZCwgLWMobWVhbiwgbmFpdmUsIGRyaWZ0KSkpICU+JQogICAgICAgIG1vZGVsKAogICAgICAgICAgICBldHM9RVRTKGxvZ21vdmUgfiBlcnJvcigiQSIpICsgdHJlbmQoIkEiKSArIHNlYXNvbigiTiIpKSwKICAgICAgICAgICAgLnNhZmVseT1GQUxTRQogICAgICAgICkKfSwgb2pfdHJhaW4sIG9qX21vZGVsc2V0X2Jhc2ljKQoKb2pfZmNhc3RfZXRzIDwtIHBhcmFsbGVsOjpjbHVzdGVyTWFwKGNsLCBnZXRfZm9yZWNhc3RzLCBval9tb2RlbHNldF9ldHMsIG9qX3Rlc3QpCgpkZXN0cm95X2NsdXN0ZXIoY2wpCgpzYXZlX29iamVjdHMob2pfbW9kZWxzZXRfZXRzLCBval9mY2FzdF9ldHMsCiAgICAgICAgICAgICBleGFtcGxlPSJncm9jZXJ5X3NhbGVzIiwgZmlsZT0ibW9kZWxfZXRzLlJkYXRhIikKCm9qX2ZjYXN0X2V0cyAlPiUKICAgIGJpbmRfcm93cygpICU+JQogICAgbXV0YXRlX2F0KC0oMTozKSwgZXhwKSAlPiUKICAgIGV2YWxfZm9yZWNhc3RzKCkKYGBgCgpUaGUgRVRTIG1vZGVsIGRvZXMgX3dvcnNlXyB0aGFuIHRoZSBBUklNQSBtb2RlbCwgc29tZXRoaW5nIHRoYXQgc2hvdWxkIG5vdCBiZSBhIHN1cnByaXNlIGdpdmVuIHRoZSBsYWNrIG9mIHN0cm9uZyBzZWFzb25hbGl0eSBhbmQgdHJlbmQgaW4gdGhpcyBkYXRhc2V0LiBXZSBjb25jbHVkZSB0aGF0IGFueSBzaW1wbGUgdW5pdmFyaWF0ZSBhcHByb2FjaCBpcyB1bmxpa2VseSB0byBkbyB3ZWxsLgo=</div>

Просмотреть файл

@ -79,7 +79,8 @@ destroy_cluster(cl)
save_objects(oj_modelset_reg, oj_fcast_reg,
example="grocery_sales", file="model_reg.Rdata")
do.call(rbind, oj_fcast_reg) %>%
oj_fcast_reg %>%
bind_rows() %>%
mutate_at(-(1:3), exp) %>%
eval_forecasts()
```

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -64,7 +64,8 @@ destroy_cluster(cl)
save_objects(oj_modelset_pr, oj_fcast_pr,
example="grocery_sales", file="model_pr.Rdata")
do.call(rbind, oj_fcast_pr) %>%
oj_fcast_pr %>%
bind_rows() %>%
mutate_at(-(1:3), exp) %>%
eval_forecasts()
```

Просмотреть файл

@ -238,7 +238,7 @@ summary {
<p>Here, we will use the fable.prophet package which provides a tidyverts frontend to the prophet package itself. As with ETS, prophet does not support time series with missing values, so we again impute them using the ARIMA model forecasts.</p>
<!-- rnb-text-end -->
<!-- rnb-chunk-begin -->
<!-- rnb-source-begin eyJkYXRhIjpbInNyY2RpciA8LSBoZXJlOjpoZXJlKFwiUl91dGlsc1wiKSIsImZvcihzcmMgaW4gZGlyKHNyY2RpciwgZnVsbC5uYW1lcz1UUlVFKSkgc291cmNlKHNyYykiLCIiLCJsb2FkX29iamVjdHMoXCJncm9jZXJ5X3NhbGVzXCIsIFwiZGF0YV9yZWcuUmRhdGFcIikiLCJsb2FkX29iamVjdHMoXCJncm9jZXJ5X3NhbGVzXCIsIFwibW9kZWxfYmFzaWMuUmRhdGFcIikiLCIiLCJjbCA8LSBtYWtlX2NsdXN0ZXIobGlicz1jKFwidGlkeXJcIiwgXCJkcGx5clwiLCBcImZhYmxlXCIsIFwidHNpYmJsZVwiLCBcImZlYXN0c1wiLCBcInByb3BoZXRcIiwgXCJmYWJsZS5wcm9waGV0XCIpKSIsIiIsIm9qX21vZGVsc2V0X3ByIDwtIHBhcmFsbGVsOjpjbHVzdGVyTWFwKGNsLCBmdW5jdGlvbihkZiwgYmFzaWNtb2QpXG57XG4gICAgZGYkbG9nbW92ZSA8LSBpbnRlcnBvbGF0ZShzZWxlY3QoYmFzaWNtb2QsIC1jKG1lYW4sIG5haXZlLCBkcmlmdCkpLCBkZikkbG9nbW92ZVxuICAgIGRmICU+JVxuICAgICAgICBncm91cF9ieShzdG9yZSwgYnJhbmQpICU+JVxuICAgICAgICBmaWxsKGRlYWw6bWF4cHJpY2VkaWZmLCAuZGlyZWN0aW9uPVwiZG93bnVwXCIpICU+JVxuICAgICAgICBtb2RlbChcbiAgICAgICAgICAgIHByPXByb3BoZXQobG9nbW92ZSB+IGRlYWwgKyBmZWF0ICsgcHJpY2UgKyBtYXhwcmljZWRpZmYpLFxuXG4gICAgICAgICAgICBwcl90dW5lPXByb3BoZXQobG9nbW92ZSB+IGRlYWwgKyBmZWF0ICsgcHJpY2UgKyBtYXhwcmljZWRpZmYgK1xuICAgICAgICAgICAgICAgIGdyb3d0aChuX2NoYW5nZXBvaW50cz0yKSArIHNlYXNvbihwZXJpb2Q9NTIsIG9yZGVyPTUsIHByaW9yX3NjYWxlPTIpKSxcblxuICAgICAgICAgICAgLnNhZmVseT1GQUxTRVxuICAgICAgICApXG59LCBval90cmFpbnJlZywgb2pfbW9kZWxzZXRfYmFzaWMpIiwiIiwib2pfZmNhc3RfcHIgPC0gcGFyYWxsZWw6OmNsdXN0ZXJNYXAoY2wsIGZ1bmN0aW9uKG1hYmxlLCBuZXdkYXRhLCBmY2FzdF9mdW5jKVxue1xuICAgIG5ld2RhdGEgPC0gbmV3ZGF0YSAlPiVcbiAgICAgICAgZmlsbChkZWFsOm1heHByaWNlZGlmZiwgLmRpcmVjdGlvbj1cImRvd251cFwiKVxuICAgIGZjYXN0X2Z1bmMobWFibGUsIG5ld2RhdGEpXG59LCBval9tb2RlbHNldF9wciwgb2pfdGVzdHJlZywgTW9yZUFyZ3M9bGlzdChmY2FzdF9mdW5jPWdldF9mb3JlY2FzdHMpKSIsIiIsImRlc3Ryb3lfY2x1c3RlcihjbCkiLCIiLCJzYXZlX29iamVjdHMob2pfbW9kZWxzZXRfcHIsIG9qX2ZjYXN0X3ByLFxuICAgICAgICAgICAgIGV4YW1wbGU9XCJncm9jZXJ5X3NhbGVzXCIsIGZpbGU9XCJtb2RlbF9wci5SZGF0YVwiKSIsIiIsImRvLmNhbGwocmJpbmQsIG9qX2ZjYXN0X3ByKSAlPiVcbiAgICBtdXRhdGVfYXQoLSgxOjMpLCBleHApICU+JVxuICAgIGV2YWxfZm9yZWNhc3RzKCkiXX0= -->
<!-- rnb-source-begin eyJkYXRhIjpbInNyY2RpciA8LSBoZXJlOjpoZXJlKFwiUl91dGlsc1wiKSIsImZvcihzcmMgaW4gZGlyKHNyY2RpciwgZnVsbC5uYW1lcz1UUlVFKSkgc291cmNlKHNyYykiLCIiLCJsb2FkX29iamVjdHMoXCJncm9jZXJ5X3NhbGVzXCIsIFwiZGF0YV9yZWcuUmRhdGFcIikiLCJsb2FkX29iamVjdHMoXCJncm9jZXJ5X3NhbGVzXCIsIFwibW9kZWxfYmFzaWMuUmRhdGFcIikiLCIiLCJjbCA8LSBtYWtlX2NsdXN0ZXIobGlicz1jKFwidGlkeXJcIiwgXCJkcGx5clwiLCBcImZhYmxlXCIsIFwidHNpYmJsZVwiLCBcImZlYXN0c1wiLCBcInByb3BoZXRcIiwgXCJmYWJsZS5wcm9waGV0XCIpKSIsIiIsIm9qX21vZGVsc2V0X3ByIDwtIHBhcmFsbGVsOjpjbHVzdGVyTWFwKGNsLCBmdW5jdGlvbihkZiwgYmFzaWNtb2QpXG57XG4gICAgZGYkbG9nbW92ZSA8LSBpbnRlcnBvbGF0ZShzZWxlY3QoYmFzaWNtb2QsIC1jKG1lYW4sIG5haXZlLCBkcmlmdCkpLCBkZikkbG9nbW92ZVxuICAgIGRmICU+JVxuICAgICAgICBncm91cF9ieShzdG9yZSwgYnJhbmQpICU+JVxuICAgICAgICBmaWxsKGRlYWw6bWF4cHJpY2VkaWZmLCAuZGlyZWN0aW9uPVwiZG93bnVwXCIpICU+JVxuICAgICAgICBtb2RlbChcbiAgICAgICAgICAgIHByPXByb3BoZXQobG9nbW92ZSB+IGRlYWwgKyBmZWF0ICsgcHJpY2UgKyBtYXhwcmljZWRpZmYpLFxuXG4gICAgICAgICAgICBwcl90dW5lPXByb3BoZXQobG9nbW92ZSB+IGRlYWwgKyBmZWF0ICsgcHJpY2UgKyBtYXhwcmljZWRpZmYgK1xuICAgICAgICAgICAgICAgIGdyb3d0aChuX2NoYW5nZXBvaW50cz0yKSArIHNlYXNvbihwZXJpb2Q9NTIsIG9yZGVyPTUsIHByaW9yX3NjYWxlPTIpKSxcblxuICAgICAgICAgICAgLnNhZmVseT1GQUxTRVxuICAgICAgICApXG59LCBval90cmFpbnJlZywgb2pfbW9kZWxzZXRfYmFzaWMpIiwiIiwib2pfZmNhc3RfcHIgPC0gcGFyYWxsZWw6OmNsdXN0ZXJNYXAoY2wsIGZ1bmN0aW9uKG1hYmxlLCBuZXdkYXRhLCBmY2FzdF9mdW5jKVxue1xuICAgIG5ld2RhdGEgPC0gbmV3ZGF0YSAlPiVcbiAgICAgICAgZmlsbChkZWFsOm1heHByaWNlZGlmZiwgLmRpcmVjdGlvbj1cImRvd251cFwiKVxuICAgIGZjYXN0X2Z1bmMobWFibGUsIG5ld2RhdGEpXG59LCBval9tb2RlbHNldF9wciwgb2pfdGVzdHJlZywgTW9yZUFyZ3M9bGlzdChmY2FzdF9mdW5jPWdldF9mb3JlY2FzdHMpKSIsIiIsImRlc3Ryb3lfY2x1c3RlcihjbCkiLCIiLCJzYXZlX29iamVjdHMob2pfbW9kZWxzZXRfcHIsIG9qX2ZjYXN0X3ByLFxuICAgICAgICAgICAgIGV4YW1wbGU9XCJncm9jZXJ5X3NhbGVzXCIsIGZpbGU9XCJtb2RlbF9wci5SZGF0YVwiKSIsIiIsIm9qX2ZjYXN0X3ByICU+JVxuICAgIGJpbmRfcm93cygpICU+JVxuICAgIG11dGF0ZV9hdCgtKDE6MyksIGV4cCkgJT4lXG4gICAgZXZhbF9mb3JlY2FzdHMoKSJdfQ== -->
<pre class="r"><code>srcdir &lt;- here::here(&quot;R_utils&quot;)
for(src in dir(srcdir, full.names=TRUE)) source(src)
@ -275,13 +275,14 @@ destroy_cluster(cl)
save_objects(oj_modelset_pr, oj_fcast_pr,
example=&quot;grocery_sales&quot;, file=&quot;model_pr.Rdata&quot;)
do.call(rbind, oj_fcast_pr) %&gt;%
oj_fcast_pr %&gt;%
bind_rows() %&gt;%
mutate_at(-(1:3), exp) %&gt;%
eval_forecasts()</code></pre>
<!-- rnb-source-end -->
<div data-pagedtable="false">
<script data-pagedtable-source type="application/json">
{"columns":[{"label":["pr"],"name":[1],"type":["dbl"],"align":["right"]},{"label":["pr_tune"],"name":[2],"type":["dbl"],"align":["right"]}],"data":[{"1":"66.08999","2":"80.72476"}],"options":{"columns":{"min":{},"max":[10]},"rows":{"min":[10],"max":[10]},"pages":{}}}
{"columns":[{"label":["pr"],"name":[1],"type":["dbl"],"align":["right"]},{"label":["pr_tune"],"name":[2],"type":["dbl"],"align":["right"]}],"data":[{"1":"66.35237","2":"80.74233"}],"options":{"columns":{"min":{},"max":[10]},"rows":{"min":[10],"max":[10]},"pages":{}}}
</script>
</div>
<!-- rnb-chunk-end -->
@ -289,7 +290,7 @@ do.call(rbind, oj_fcast_pr) %&gt;%
<p>It appears that Prophet does <em>not</em> do better than the simple ARIMA model with regression variables. This is possibly because the dataset does not have a strong time series nature: there is no seasonality, and only weak or nonexistent trends. These are features which the Prophet algorithm is designed to detect, and their absence means that there would be little advantage in using it.</p>
<!-- rnb-text-end -->
<div id="rmd-source-code">LS0tCnRpdGxlOiBQcm9waGV0IG1vZGVscwpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpfQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXzxici8+Cl9MaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXwoKYGBge3IsIGVjaG89RkFMU0UsIHJlc3VsdHM9ImhpZGUiLCBtZXNzYWdlPUZBTFNFfQpsaWJyYXJ5KHRpZHlyKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHRzaWJibGUpCmxpYnJhcnkoZmVhc3RzKQpsaWJyYXJ5KGZhYmxlKQpsaWJyYXJ5KHByb3BoZXQpCmxpYnJhcnkoZmFibGUucHJvcGhldCkKYGBgCgpUaGlzIG5vdGVib29rIGJ1aWxkcyBhIGZvcmVjYXN0aW5nIG1vZGVsIHVzaW5nIHRoZSBbUHJvcGhldF0oaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcHJvcGhldC8pIGFsZ29yaXRobS4gUHJvcGhldCBpcyBhIHRpbWUgc2VyaWVzIG1vZGVsIGRldmVsb3BlZCBieSBGYWNlYm9vayB0aGF0IGlzIGRlc2lnbmVkIHRvIGJlIHNpbXBsZSBmb3Igbm9uLWV4cGVydHMgdG8gdXNlLCB5ZXQgZmxleGlibGUgYW5kIHBvd2VyZnVsLgoKPiBQcm9waGV0IGlzIGEgcHJvY2VkdXJlIGZvciBmb3JlY2FzdGluZyB0aW1lIHNlcmllcyBkYXRhIGJhc2VkIG9uIGFuIGFkZGl0aXZlIG1vZGVsIHdoZXJlIG5vbi1saW5lYXIgdHJlbmRzIGFyZSBmaXQgd2l0aCB5ZWFybHksIHdlZWtseSwgYW5kIGRhaWx5IHNlYXNvbmFsaXR5LCBwbHVzIGhvbGlkYXkgZWZmZWN0cy4gSXQgd29ya3MgYmVzdCB3aXRoIHRpbWUgc2VyaWVzIHRoYXQgaGF2ZSBzdHJvbmcgc2Vhc29uYWwgZWZmZWN0cyBhbmQgc2V2ZXJhbCBzZWFzb25zIG9mIGhpc3RvcmljYWwgZGF0YS4gUHJvcGhldCBpcyByb2J1c3QgdG8gbWlzc2luZyBkYXRhIGFuZCBzaGlmdHMgaW4gdGhlIHRyZW5kLCBhbmQgdHlwaWNhbGx5IGhhbmRsZXMgb3V0bGllcnMgd2VsbC4KCkhlcmUsIHdlIHdpbGwgdXNlIHRoZSBmYWJsZS5wcm9waGV0IHBhY2thZ2Ugd2hpY2ggcHJvdmlkZXMgYSB0aWR5dmVydHMgZnJvbnRlbmQgdG8gdGhlIHByb3BoZXQgcGFja2FnZSBpdHNlbGYuIEFzIHdpdGggRVRTLCBwcm9waGV0IGRvZXMgbm90IHN1cHBvcnQgdGltZSBzZXJpZXMgd2l0aCBtaXNzaW5nIHZhbHVlcywgc28gd2UgYWdhaW4gaW1wdXRlIHRoZW0gdXNpbmcgdGhlIEFSSU1BIG1vZGVsIGZvcmVjYXN0cy4KCmBgYHtyfQpzcmNkaXIgPC0gaGVyZTo6aGVyZSgiUl91dGlscyIpCmZvcihzcmMgaW4gZGlyKHNyY2RpciwgZnVsbC5uYW1lcz1UUlVFKSkgc291cmNlKHNyYykKCmxvYWRfb2JqZWN0cygiZ3JvY2VyeV9zYWxlcyIsICJkYXRhX3JlZy5SZGF0YSIpCmxvYWRfb2JqZWN0cygiZ3JvY2VyeV9zYWxlcyIsICJtb2RlbF9iYXNpYy5SZGF0YSIpCgpjbCA8LSBtYWtlX2NsdXN0ZXIobGlicz1jKCJ0aWR5ciIsICJkcGx5ciIsICJmYWJsZSIsICJ0c2liYmxlIiwgImZlYXN0cyIsICJwcm9waGV0IiwgImZhYmxlLnByb3BoZXQiKSkKCm9qX21vZGVsc2V0X3ByIDwtIHBhcmFsbGVsOjpjbHVzdGVyTWFwKGNsLCBmdW5jdGlvbihkZiwgYmFzaWNtb2QpCnsKICAgIGRmJGxvZ21vdmUgPC0gaW50ZXJwb2xhdGUoc2VsZWN0KGJhc2ljbW9kLCAtYyhtZWFuLCBuYWl2ZSwgZHJpZnQpKSwgZGYpJGxvZ21vdmUKICAgIGRmICU+JQogICAgICAgIGdyb3VwX2J5KHN0b3JlLCBicmFuZCkgJT4lCiAgICAgICAgZmlsbChkZWFsOm1heHByaWNlZGlmZiwgLmRpcmVjdGlvbj0iZG93bnVwIikgJT4lCiAgICAgICAgbW9kZWwoCiAgICAgICAgICAgIHByPXByb3BoZXQobG9nbW92ZSB+IGRlYWwgKyBmZWF0ICsgcHJpY2UgKyBtYXhwcmljZWRpZmYpLAoKICAgICAgICAgICAgcHJfdHVuZT1wcm9waGV0KGxvZ21vdmUgfiBkZWFsICsgZmVhdCArIHByaWNlICsgbWF4cHJpY2VkaWZmICsKICAgICAgICAgICAgICAgIGdyb3d0aChuX2NoYW5nZXBvaW50cz0yKSArIHNlYXNvbihwZXJpb2Q9NTIsIG9yZGVyPTUsIHByaW9yX3NjYWxlPTIpKSwKCiAgICAgICAgICAgIC5zYWZlbHk9RkFMU0UKICAgICAgICApCn0sIG9qX3RyYWlucmVnLCBval9tb2RlbHNldF9iYXNpYykKCm9qX2ZjYXN0X3ByIDwtIHBhcmFsbGVsOjpjbHVzdGVyTWFwKGNsLCBmdW5jdGlvbihtYWJsZSwgbmV3ZGF0YSwgZmNhc3RfZnVuYykKewogICAgbmV3ZGF0YSA8LSBuZXdkYXRhICU+JQogICAgICAgIGZpbGwoZGVhbDptYXhwcmljZWRpZmYsIC5kaXJlY3Rpb249ImRvd251cCIpCiAgICBmY2FzdF9mdW5jKG1hYmxlLCBuZXdkYXRhKQp9LCBval9tb2RlbHNldF9wciwgb2pfdGVzdHJlZywgTW9yZUFyZ3M9bGlzdChmY2FzdF9mdW5jPWdldF9mb3JlY2FzdHMpKQoKZGVzdHJveV9jbHVzdGVyKGNsKQoKc2F2ZV9vYmplY3RzKG9qX21vZGVsc2V0X3ByLCBval9mY2FzdF9wciwKICAgICAgICAgICAgIGV4YW1wbGU9Imdyb2Nlcnlfc2FsZXMiLCBmaWxlPSJtb2RlbF9wci5SZGF0YSIpCgpkby5jYWxsKHJiaW5kLCBval9mY2FzdF9wcikgJT4lCiAgICBtdXRhdGVfYXQoLSgxOjMpLCBleHApICU+JQogICAgZXZhbF9mb3JlY2FzdHMoKQpgYGAKCkl0IGFwcGVhcnMgdGhhdCBQcm9waGV0IGRvZXMgX25vdF8gZG8gYmV0dGVyIHRoYW4gdGhlIHNpbXBsZSBBUklNQSBtb2RlbCB3aXRoIHJlZ3Jlc3Npb24gdmFyaWFibGVzLiBUaGlzIGlzIHBvc3NpYmx5IGJlY2F1c2UgdGhlIGRhdGFzZXQgZG9lcyBub3QgaGF2ZSBhIHN0cm9uZyB0aW1lIHNlcmllcyBuYXR1cmU6IHRoZXJlIGlzIG5vIHNlYXNvbmFsaXR5LCBhbmQgb25seSB3ZWFrIG9yIG5vbmV4aXN0ZW50IHRyZW5kcy4gVGhlc2UgYXJlIGZlYXR1cmVzIHdoaWNoIHRoZSBQcm9waGV0IGFsZ29yaXRobSBpcyBkZXNpZ25lZCB0byBkZXRlY3QsIGFuZCB0aGVpciBhYnNlbmNlIG1lYW5zIHRoYXQgdGhlcmUgd291bGQgYmUgbGl0dGxlIGFkdmFudGFnZSBpbiB1c2luZyBpdC4K</div>
<div id="rmd-source-code">LS0tCnRpdGxlOiBQcm9waGV0IG1vZGVscwpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpfQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXzxici8+Cl9MaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXwoKYGBge3IsIGVjaG89RkFMU0UsIHJlc3VsdHM9ImhpZGUiLCBtZXNzYWdlPUZBTFNFfQpsaWJyYXJ5KHRpZHlyKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHRzaWJibGUpCmxpYnJhcnkoZmVhc3RzKQpsaWJyYXJ5KGZhYmxlKQpsaWJyYXJ5KHVyY2EpCmxpYnJhcnkocHJvcGhldCkKIyMgTk9URTogdGhlIGZvbGxvd2luZyBwYWNrYWdlIGNhbiBiZSBpbnN0YWxsZWQgZnJvbSBHaXRIdWIgd2l0aAojIyByZW1vdGVzOjppbnN0YWxsX2dpdGh1YigibWl0Y2hlbGxvaGFyYXdpbGQvZmFibGUucHJvcGhldCIpCmxpYnJhcnkoZmFibGUucHJvcGhldCkKCiMjIyBOT1RFOiBZb3UgbXVzdCBydW4gdGhlIDAyYV9yZWdfbW9kZWxzLlJtZCBub3RlYm9vayBiZWZvcmUgdGhpcyBvbmUKYGBgCgpUaGlzIG5vdGVib29rIGJ1aWxkcyBhIGZvcmVjYXN0aW5nIG1vZGVsIHVzaW5nIHRoZSBbUHJvcGhldF0oaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vcHJvcGhldC8pIGFsZ29yaXRobS4gUHJvcGhldCBpcyBhIHRpbWUgc2VyaWVzIG1vZGVsIGRldmVsb3BlZCBieSBGYWNlYm9vayB0aGF0IGlzIGRlc2lnbmVkIHRvIGJlIHNpbXBsZSBmb3Igbm9uLWV4cGVydHMgdG8gdXNlLCB5ZXQgZmxleGlibGUgYW5kIHBvd2VyZnVsLgoKPiBQcm9waGV0IGlzIGEgcHJvY2VkdXJlIGZvciBmb3JlY2FzdGluZyB0aW1lIHNlcmllcyBkYXRhIGJhc2VkIG9uIGFuIGFkZGl0aXZlIG1vZGVsIHdoZXJlIG5vbi1saW5lYXIgdHJlbmRzIGFyZSBmaXQgd2l0aCB5ZWFybHksIHdlZWtseSwgYW5kIGRhaWx5IHNlYXNvbmFsaXR5LCBwbHVzIGhvbGlkYXkgZWZmZWN0cy4gSXQgd29ya3MgYmVzdCB3aXRoIHRpbWUgc2VyaWVzIHRoYXQgaGF2ZSBzdHJvbmcgc2Vhc29uYWwgZWZmZWN0cyBhbmQgc2V2ZXJhbCBzZWFzb25zIG9mIGhpc3RvcmljYWwgZGF0YS4gUHJvcGhldCBpcyByb2J1c3QgdG8gbWlzc2luZyBkYXRhIGFuZCBzaGlmdHMgaW4gdGhlIHRyZW5kLCBhbmQgdHlwaWNhbGx5IGhhbmRsZXMgb3V0bGllcnMgd2VsbC4KCkhlcmUsIHdlIHdpbGwgdXNlIHRoZSBmYWJsZS5wcm9waGV0IHBhY2thZ2Ugd2hpY2ggcHJvdmlkZXMgYSB0aWR5dmVydHMgZnJvbnRlbmQgdG8gdGhlIHByb3BoZXQgcGFja2FnZSBpdHNlbGYuIEFzIHdpdGggRVRTLCBwcm9waGV0IGRvZXMgbm90IHN1cHBvcnQgdGltZSBzZXJpZXMgd2l0aCBtaXNzaW5nIHZhbHVlcywgc28gd2UgYWdhaW4gaW1wdXRlIHRoZW0gdXNpbmcgdGhlIEFSSU1BIG1vZGVsIGZvcmVjYXN0cy4KCmBgYHtyfQpzcmNkaXIgPC0gaGVyZTo6aGVyZSgiUl91dGlscyIpCmZvcihzcmMgaW4gZGlyKHNyY2RpciwgZnVsbC5uYW1lcz1UUlVFKSkgc291cmNlKHNyYykKCmxvYWRfb2JqZWN0cygiZ3JvY2VyeV9zYWxlcyIsICJkYXRhX3JlZy5SZGF0YSIpCmxvYWRfb2JqZWN0cygiZ3JvY2VyeV9zYWxlcyIsICJtb2RlbF9iYXNpYy5SZGF0YSIpCgpjbCA8LSBtYWtlX2NsdXN0ZXIobGlicz1jKCJ0aWR5ciIsICJkcGx5ciIsICJmYWJsZSIsICJ0c2liYmxlIiwgImZlYXN0cyIsICJwcm9waGV0IiwgImZhYmxlLnByb3BoZXQiKSkKCm9qX21vZGVsc2V0X3ByIDwtIHBhcmFsbGVsOjpjbHVzdGVyTWFwKGNsLCBmdW5jdGlvbihkZiwgYmFzaWNtb2QpCnsKICAgIGRmJGxvZ21vdmUgPC0gaW50ZXJwb2xhdGUoc2VsZWN0KGJhc2ljbW9kLCAtYyhtZWFuLCBuYWl2ZSwgZHJpZnQpKSwgZGYpJGxvZ21vdmUKICAgIGRmICU+JQogICAgICAgIGdyb3VwX2J5KHN0b3JlLCBicmFuZCkgJT4lCiAgICAgICAgZmlsbChkZWFsOm1heHByaWNlZGlmZiwgLmRpcmVjdGlvbj0iZG93bnVwIikgJT4lCiAgICAgICAgbW9kZWwoCiAgICAgICAgICAgIHByPXByb3BoZXQobG9nbW92ZSB+IGRlYWwgKyBmZWF0ICsgcHJpY2UgKyBtYXhwcmljZWRpZmYpLAoKICAgICAgICAgICAgcHJfdHVuZT1wcm9waGV0KGxvZ21vdmUgfiBkZWFsICsgZmVhdCArIHByaWNlICsgbWF4cHJpY2VkaWZmICsKICAgICAgICAgICAgICAgIGdyb3d0aChuX2NoYW5nZXBvaW50cz0yKSArIHNlYXNvbihwZXJpb2Q9NTIsIG9yZGVyPTUsIHByaW9yX3NjYWxlPTIpKSwKCiAgICAgICAgICAgIC5zYWZlbHk9RkFMU0UKICAgICAgICApCn0sIG9qX3RyYWlucmVnLCBval9tb2RlbHNldF9iYXNpYykKCm9qX2ZjYXN0X3ByIDwtIHBhcmFsbGVsOjpjbHVzdGVyTWFwKGNsLCBmdW5jdGlvbihtYWJsZSwgbmV3ZGF0YSwgZmNhc3RfZnVuYykKewogICAgbmV3ZGF0YSA8LSBuZXdkYXRhICU+JQogICAgICAgIGZpbGwoZGVhbDptYXhwcmljZWRpZmYsIC5kaXJlY3Rpb249ImRvd251cCIpCiAgICBmY2FzdF9mdW5jKG1hYmxlLCBuZXdkYXRhKQp9LCBval9tb2RlbHNldF9wciwgb2pfdGVzdHJlZywgTW9yZUFyZ3M9bGlzdChmY2FzdF9mdW5jPWdldF9mb3JlY2FzdHMpKQoKZGVzdHJveV9jbHVzdGVyKGNsKQoKc2F2ZV9vYmplY3RzKG9qX21vZGVsc2V0X3ByLCBval9mY2FzdF9wciwKICAgICAgICAgICAgIGV4YW1wbGU9Imdyb2Nlcnlfc2FsZXMiLCBmaWxlPSJtb2RlbF9wci5SZGF0YSIpCgpval9mY2FzdF9wciAlPiUKICAgIGJpbmRfcm93cygpICU+JQogICAgbXV0YXRlX2F0KC0oMTozKSwgZXhwKSAlPiUKICAgIGV2YWxfZm9yZWNhc3RzKCkKYGBgCgpJdCBhcHBlYXJzIHRoYXQgUHJvcGhldCBkb2VzIF9ub3RfIGRvIGJldHRlciB0aGFuIHRoZSBzaW1wbGUgQVJJTUEgbW9kZWwgd2l0aCByZWdyZXNzaW9uIHZhcmlhYmxlcy4gVGhpcyBpcyBwb3NzaWJseSBiZWNhdXNlIHRoZSBkYXRhc2V0IGRvZXMgbm90IGhhdmUgYSBzdHJvbmcgdGltZSBzZXJpZXMgbmF0dXJlOiB0aGVyZSBpcyBubyBzZWFzb25hbGl0eSwgYW5kIG9ubHkgd2VhayBvciBub25leGlzdGVudCB0cmVuZHMuIFRoZXNlIGFyZSBmZWF0dXJlcyB3aGljaCB0aGUgUHJvcGhldCBhbGdvcml0aG0gaXMgZGVzaWduZWQgdG8gZGV0ZWN0LCBhbmQgdGhlaXIgYWJzZW5jZSBtZWFucyB0aGF0IHRoZXJlIHdvdWxkIGJlIGxpdHRsZSBhZHZhbnRhZ2UgaW4gdXNpbmcgaXQuCg==</div>

Просмотреть файл

@ -236,12 +236,33 @@ summary {
<p>Lets look at how to do some simple summaries. Well use the <code>aus_retail</code> dataset, which contains retail turnover statistics by (Australian) state and industry, going back to 1982. This is part of the tsibbledata package, which contains several example time series datasets.</p>
<!-- rnb-text-end -->
<!-- rnb-chunk-begin -->
<!-- rnb-source-begin eyJkYXRhIjpbImxpYnJhcnkoZHBseXIpIiwibGlicmFyeSh0c2liYmxlZGF0YSkiLCJsaWJyYXJ5KHRzaWJibGUpIiwibGlicmFyeShmZWFzdHMpIiwibGlicmFyeShmYWJsZSkiLCIiLCJzbGljZShhdXNfcmV0YWlsLCAxOjYpIl19 -->
<pre class="r"><code>library(dplyr)
library(tsibbledata)
<!-- rnb-source-begin eyJkYXRhIjoibGlicmFyeShkcGx5cikifQ== -->
<pre class="r"><code>library(dplyr)</code></pre>
<!-- rnb-source-end -->
<!-- rnb-message-begin eyJkYXRhIjoiXG5BdHRhY2hpbmcgcGFja2FnZTogJ2RwbHlyJ1xuIn0= -->
<pre><code>
Attaching package: 'dplyr'</code></pre>
<!-- rnb-message-end -->
<!-- rnb-message-begin eyJkYXRhIjoiVGhlIGZvbGxvd2luZyBvYmplY3RzIGFyZSBtYXNrZWQgZnJvbSAncGFja2FnZTpzdGF0cyc6XG5cbiAgICBmaWx0ZXIsIGxhZ1xuIn0= -->
<pre><code>The following objects are masked from 'package:stats':
filter, lag</code></pre>
<!-- rnb-message-end -->
<!-- rnb-message-begin eyJkYXRhIjoiVGhlIGZvbGxvd2luZyBvYmplY3RzIGFyZSBtYXNrZWQgZnJvbSAncGFja2FnZTpiYXNlJzpcblxuICAgIGludGVyc2VjdCwgc2V0ZGlmZiwgc2V0ZXF1YWwsIHVuaW9uXG4ifQ== -->
<pre><code>The following objects are masked from 'package:base':
intersect, setdiff, setequal, union</code></pre>
<!-- rnb-message-end -->
<!-- rnb-source-begin eyJkYXRhIjpbImxpYnJhcnkodHNpYmJsZWRhdGEpIiwibGlicmFyeSh0c2liYmxlKSIsImxpYnJhcnkoZmVhc3RzKSJdfQ== -->
<pre class="r"><code>library(tsibbledata)
library(tsibble)
library(feasts)
library(fable)
library(feasts)</code></pre>
<!-- rnb-source-end -->
<!-- rnb-message-begin eyJkYXRhIjoiTG9hZGluZyByZXF1aXJlZCBwYWNrYWdlOiBmYWJsZXRvb2xzXG4ifQ== -->
<pre><code>Loading required package: fabletools</code></pre>
<!-- rnb-message-end -->
<!-- rnb-source-begin eyJkYXRhIjpbImxpYnJhcnkoZmFibGUpIiwiIiwic2xpY2UoYXVzX3JldGFpbCwgMTo2KSJdfQ== -->
<pre class="r"><code>library(fable)
slice(aus_retail, 1:6)</code></pre>
<!-- rnb-source-end -->
@ -303,7 +324,7 @@ Industry</code></pre>
<!-- rnb-message-end -->
<div data-pagedtable="false">
<script data-pagedtable-source type="application/json">
{"columns":[{"label":[""],"name":["_rn_"],"type":[""],"align":["left"]},{"label":["Industry"],"name":[1],"type":["chr"],"align":["left"]},{"label":["Turnover"],"name":[2],"type":["dbl"],"align":["right"]}],"data":[{"1":"Cafes, restaurants and catering services","2":"414431.2","_rn_":"1"},{"1":"Cafes, restaurants and takeaway food services","2":"741912.6","_rn_":"2"},{"1":"Clothing retailing","2":"324124.1","_rn_":"3"},{"1":"Clothing, footwear and personal accessory retailing","2":"492355.6","_rn_":"4"},{"1":"Department stores","2":"487129.3","_rn_":"5"},{"1":"Electrical and electronic goods retailing","2":"435935.7","_rn_":"6"},{"1":"Food retailing","2":"2278544.8","_rn_":"7"},{"1":"Footwear and other personal accessory retailing","2":"168230.4","_rn_":"8"},{"1":"Furniture, floor coverings, houseware and textile goods retailing","2":"286170.1","_rn_":"9"},{"1":"Hardware, building and garden supplies retailing","2":"330429.6","_rn_":"10"},{"1":"Household goods retailing","2":"1052532.0","_rn_":"11"},{"1":"Liquor retailing","2":"156742.8","_rn_":"12"},{"1":"Newspaper and book retailing","2":"121892.2","_rn_":"13"},{"1":"Other recreational goods retailing","2":"118192.1","_rn_":"14"},{"1":"Other retailing","2":"815217.9","_rn_":"15"},{"1":"Other retailing n.e.c.","2":"307293.4","_rn_":"16"},{"1":"Other specialised food retailing","2":"178784.1","_rn_":"17"},{"1":"Pharmaceutical, cosmetic and toiletry goods retailing","2":"285984.0","_rn_":"18"},{"1":"Supermarket and grocery stores","2":"1889565.5","_rn_":"19"},{"1":"Takeaway food services","2":"327477.0","_rn_":"20"}],"options":{"columns":{"min":{},"max":[10]},"rows":{"min":[10],"max":[10]},"pages":{}}}
{"columns":[{"label":["Industry"],"name":[1],"type":["chr"],"align":["left"]},{"label":["Turnover"],"name":[2],"type":["dbl"],"align":["right"]}],"data":[{"1":"Cafes, restaurants and catering services","2":"414431.2"},{"1":"Cafes, restaurants and takeaway food services","2":"741912.6"},{"1":"Clothing retailing","2":"324124.1"},{"1":"Clothing, footwear and personal accessory retailing","2":"492355.6"},{"1":"Department stores","2":"487129.3"},{"1":"Electrical and electronic goods retailing","2":"435935.7"},{"1":"Food retailing","2":"2278544.8"},{"1":"Footwear and other personal accessory retailing","2":"168230.4"},{"1":"Furniture, floor coverings, houseware and textile goods retailing","2":"286170.1"},{"1":"Hardware, building and garden supplies retailing","2":"330429.6"},{"1":"Household goods retailing","2":"1052532.0"},{"1":"Liquor retailing","2":"156742.8"},{"1":"Newspaper and book retailing","2":"121892.2"},{"1":"Other recreational goods retailing","2":"118192.1"},{"1":"Other retailing","2":"815217.9"},{"1":"Other retailing n.e.c.","2":"307293.4"},{"1":"Other specialised food retailing","2":"178784.1"},{"1":"Pharmaceutical, cosmetic and toiletry goods retailing","2":"285984.0"},{"1":"Supermarket and grocery stores","2":"1889565.5"},{"1":"Takeaway food services","2":"327477.0"}],"options":{"columns":{"min":{},"max":[10]},"rows":{"min":[10],"max":[10]},"pages":{}}}
</script>
</div>
<!-- rnb-source-begin eyJkYXRhIjoiYXVzX3JldGFpbCAlPiVcbiAgICBhc190aWJibGUoKSAlPiVcbiAgICBncm91cF9ieShTdGF0ZSkgJT4lXG4gICAgc3VtbWFyaXNlKFR1cm5vdmVyPXN1bShUdXJub3ZlcikpIn0= -->
@ -317,7 +338,7 @@ Industry</code></pre>
<!-- rnb-message-end -->
<div data-pagedtable="false">
<script data-pagedtable-source type="application/json">
{"columns":[{"label":[""],"name":["_rn_"],"type":[""],"align":["left"]},{"label":["State"],"name":[1],"type":["chr"],"align":["left"]},{"label":["Turnover"],"name":[2],"type":["dbl"],"align":["right"]}],"data":[{"1":"Australian Capital Territory","2":"211366.7","_rn_":"1"},{"1":"New South Wales","2":"3685679.7","_rn_":"2"},{"1":"Northern Territory","2":"97203.1","_rn_":"3"},{"1":"Queensland","2":"2152508.3","_rn_":"4"},{"1":"South Australia","2":"786950.1","_rn_":"5"},{"1":"Tasmania","2":"199168.6","_rn_":"6"},{"1":"Victoria","2":"2851855.4","_rn_":"7"},{"1":"Western Australia","2":"1228212.5","_rn_":"8"}],"options":{"columns":{"min":{},"max":[10]},"rows":{"min":[10],"max":[10]},"pages":{}}}
{"columns":[{"label":["State"],"name":[1],"type":["chr"],"align":["left"]},{"label":["Turnover"],"name":[2],"type":["dbl"],"align":["right"]}],"data":[{"1":"Australian Capital Territory","2":"211366.7"},{"1":"New South Wales","2":"3685679.7"},{"1":"Northern Territory","2":"97203.1"},{"1":"Queensland","2":"2152508.3"},{"1":"South Australia","2":"786950.1"},{"1":"Tasmania","2":"199168.6"},{"1":"Victoria","2":"2851855.4"},{"1":"Western Australia","2":"1228212.5"}],"options":{"columns":{"min":{},"max":[10]},"rows":{"min":[10],"max":[10]},"pages":{}}}
</script>
</div>
<!-- rnb-chunk-end -->

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -21,24 +21,13 @@ The following packages and their dependencies are needed to run the notebooks in
| Tidyverse | dplyr, tidyr, ggplot2 |
| Tidyverts | tsibble, tsibbledata, fabletools, fable, feasts |
| Future | future, future.apply |
| Other | urca, rmarkdown, distributional, devtools (see below) |
It's likely that you will already have many of these (particularly the Tidyverse packages) installed. However, currently (June 2020) the notebooks do require the _development_ versions of the Tidyverts packages; these can be installed from GitHub using the devtools package.
| Other | urca, rmarkdown |
```r
install.packages("tidyverse")
install.packages("tidyverse") # installs all Tidyverse packages
install.packages(c("future", "future.apply"))
install.packages(c("rmarkdown", "urca"))
# install Tidyverts packages from GitHub
install.packages("devtools")
devtools::install_github("tidyverts/tsibble@a19cda281c3f1e0061b5b0de93b059c52052ebda")
devtools::install_github("tidyverts/tsibbledata@b06a965b788722157a149296c47f821c99cc41f0")
devtools::install_github("mitchelloharawild/distributional@e668b520b415f417f71eacd7e1e940561eecffd6")
devtools::install_github("tidyverts/fabletools@864b2daa983446017f2ed757a3b8889b935cc2cb")
devtools::install_github("tidyverts/fable@d2600c151fde1609cc491d8f94bd136c71f87523")
devtools::install_github("tidyverts/feasts@f006746effa10bc223479441ebede136ca016b11")
install.packages(c("tsibble", "tsibbledata", "fabletools", "fable", "feasts"))
```
## Acknowledgements