1. Load data
ts <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/M3_quarterly_TSTS.csv", stringsAsFactors = FALSE)
fs <- read.csv("https://raw.githubusercontent.com/forvis/forvision_data/master/M3_quarterly_FTS.csv", stringsAsFactors = FALSE)
head(ts)
head(fs)
2. Создание AFTS без NAs и вычисление MAPEs:
library(forvision)
afts <- createAFTS(ts = ts, fs =fs, na = FALSE)
calculateMAPEs(afts)
$`MAPE`
$rank
NA

LS0tDQp0aXRsZTogIlBLRy0yNyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCg0KDQoNCmBgYHtyLCBlY2hvPUZBTFNFfQ0KY2FsY3VsYXRlTUFQRXMgPC0gZnVuY3Rpb24oZnJhbWUsIHNvcnQgPSBGQUxTRSl7DQogIG91dCA8LW1hdHJpeChOQSwgbnJvdyA9IGxlbmd0aCh1bmlxdWUoZnJhbWUkbWV0aG9kKSksIG5jb2wgPSBsZW5ndGgodW5pcXVlKGZyYW1lJGhvcml6b24pKSkNCiAgbWV0aG9kbGlzdCA8LSBsaXN0KCkNCiAgaG9yaXpvbmxpc3QgPC0gbGlzdCgpDQogIE1BUEVsaXN0IDwtIGxpc3QoKQ0KICBNQVBFIDwtIGMoKQ0KICBkZiA9IGRhdGEuZnJhbWUob3V0KQ0KICBjb2xuYW1lcyhkZikgPC0gcGFzdGUoImhvcml6b24gPSAiLCAxOmxlbmd0aCh1bmlxdWUoZnJhbWUkaG9yaXpvbikpLCBzZXAgPSIiKQ0KICByb3duYW1lcyhkZikgPC0gdW5pcXVlKGZyYW1lJG1ldGhvZCkNCiAgcmFua3MgPSBkYXRhLmZyYW1lKG91dCkNCiAgY29sbmFtZXMocmFua3MpIDwtIHBhc3RlKCJob3Jpem9uID0gIiwgMTpsZW5ndGgodW5pcXVlKGZyYW1lJGhvcml6b24pKSwgc2VwID0iIikNCiAgcm93bmFtZXMocmFua3MpIDwtIHVuaXF1ZShmcmFtZSRtZXRob2QpDQogIG91dGxpc3QgPC0gbGlzdCgpDQoNCiAgZm9yKGogaW4gYXMudmVjdG9yKHVuaXF1ZShmcmFtZSRob3Jpem9uKSkpew0KICAgIGZvcihpIGluIGFzLnZlY3Rvcih1bmlxdWUoZnJhbWUkbWV0aG9kKSkpew0KICAgICAgZGZbaSwgal0gPC0gIDEwMCptZWFuKGFicygoc3Vic2V0KGZyYW1lLCBtZXRob2QgPT0gaSAmIGhvcml6b24gPT0gaikkdmFsdWUgLSBzdWJzZXQoZnJhbWUsIG1ldGhvZCA9PSBpICYgaG9yaXpvbiA9PSBqKSRmb3JlY2FzdCkvc3Vic2V0KGZyYW1lLCBtZXRob2QgPT0gaSAmIGhvcml6b24gPT0gaikkdmFsdWUpLCBuYS5ybT1UUlVFKQ0KICAgIH0NCiAgfQ0KDQogIGZvciAoayBpbiAxOmxlbmd0aCh1bmlxdWUoZnJhbWUkaG9yaXpvbikpKXsNCiAgICByYW5rc1ssa10gPC0gcmFuayhkZlssIGtdKQ0KICB9DQogIGF2ZXJhZ2VyYW5rIDwtIHJvd01lYW5zKHJhbmtzLCBuYS5ybSA9VFJVRSkNCiAgYXZlcmFnZU1BUEUgPC0gcm93TWVhbnMoZGYsIG5hLnJtID1UUlVFKQ0KDQogIHJhbmtzIDwtIGNiaW5kKHJhbmtzLCAiYXZlcmFnZSByYW5rIiA9IGF2ZXJhZ2VyYW5rKQ0KICBkZiA8LSBjYmluZChkZiwgIiBhdmVyYWdlIE1BUEUiID0gYXZlcmFnZU1BUEUpDQoNCg0KICBmb3IobSBpbiAxOmxlbmd0aCh1bmlxdWUoZnJhbWUkbWV0aG9kKSkpew0KICAgIE1BUEVsaXN0W1ttXV0gPC0gdW5uYW1lKGRmW20sIDE6bGVuZ3RoKHVuaXF1ZShmcmFtZSRob3Jpem9uKSldKQ0KICAgIG1ldGhvZGxpc3RbW21dXSA8LSByZXAoYXMudmVjdG9yKHVuaXF1ZShmcmFtZSRtZXRob2QpKVttXSxsZW5ndGgodW5pcXVlKGZyYW1lJGhvcml6b24pKSkNCiAgICBob3Jpem9ubGlzdFtbbV1dPC0gYXMudmVjdG9yKHVuaXF1ZShmcmFtZSRob3Jpem9uKSkNCiAgfQ0KICBNQVBFMSA8LSBSZWR1Y2UoYywgTUFQRWxpc3QpDQogIE1BUEUgPC0gUmVkdWNlKGMsIE1BUEUxKQ0KICBob3Jpem9uIDwtIFJlZHVjZShjLCBob3Jpem9ubGlzdCkNCiAgbWV0aG9kID0gUmVkdWNlKGMsIG1ldGhvZGxpc3QpDQogIGRmMiA8LSBkYXRhLmZyYW1lKE1BUEUsIGhvcml6b24sIG1ldGhvZCApDQogICMgcGxvdHMgTUFQRXMgZnJhbWUNCiAgZ3AxIDwtIGdncGxvdDI6OmdncGxvdChkZjIsIGdncGxvdDI6OmFlcyh4PWhvcml6b24sIHk9TUFQRSwgZ3JvdXA9bWV0aG9kLGNvbG9yPW1ldGhvZCwgc2hhcGU9bWV0aG9kKSkrDQogICAgZ2dwbG90Mjo6c2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcz0xOm5sZXZlbHMoZGYyJG1ldGhvZCkpICsNCiAgICBnZ3Bsb3QyOjpsYWJzKHRpdGxlID0gIk1BUEUgZm9yIGRpZmZlcmVudCBob3Jpem9ucyBhbmQgbWV0aG9kcyIpICsNCiAgICBnZ3Bsb3QyOjpnZW9tX2xpbmUoKSArDQogICAgZ2dwbG90Mjo6Z2VvbV9wb2ludChzaXplPTMpKw0KICAgIGdncGxvdDI6OnRoZW1lKHBsb3QudGl0bGUgPSBnZ3Bsb3QyOjplbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKQ0KICBwcmludChncDEpDQoNCiAgb3V0bGlzdCA8LSBsaXN0KCJNQVBFIiA9IGRmLCAicmFuayIgPXJhbmtzKQ0KDQogIGlmKHNvcnQgPT0gRkFMU0Upew0KICAgIHJldHVybihvdXRsaXN0KQ0KICB9ZWxzZXsNCiAgICBmcmFtZTEgPC1kZltvcmRlcihkZiRgIGF2ZXJhZ2UgTUFQRWApLF0NCiAgICBmcmFtZTIgPC0gcmFua3Nbb3JkZXIocmFua3MkYGF2ZXJhZ2UgcmFua2ApLF0NCiAgICBvdXRsaXN0IDwtIGxpc3QoIk1BUEUiID0gZnJhbWUxLCJyYW5rIiA9IGZyYW1lMikNCiAgICByZXR1cm4ob3V0bGlzdCkNCiAgfQ0KDQp9DQoNCmBgYA0KDQojIyAxLiBMb2FkIGRhdGENCg0KYGBge3J9DQp0cyA8LSByZWFkLmNzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ZvcnZpcy9mb3J2aXNpb25fZGF0YS9tYXN0ZXIvTTNfcXVhcnRlcmx5X1RTVFMuY3N2Iiwgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFKQ0KZnMgPC0gcmVhZC5jc3YoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9mb3J2aXMvZm9ydmlzaW9uX2RhdGEvbWFzdGVyL00zX3F1YXJ0ZXJseV9GVFMuY3N2Iiwgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFKQ0KaGVhZCh0cykNCmhlYWQoZnMpDQpgYGANCg0KIyMgMi4g0KHQvtC30LTQsNC90LjQtSBBRlRTINCx0LXQtyBOQXMg0Lgg0LLRi9GH0LjRgdC70LXQvdC40LUgTUFQRXM6DQoNCmBgYHtyLCBmaWcuaGVpZ2h0PSA1LCBmaWcud2lkdGg9MTB9DQpsaWJyYXJ5KGZvcnZpc2lvbikNCmFmdHMgPC0gY3JlYXRlQUZUUyh0cyA9IHRzLCBmcyA9ZnMsIG5hID0gRkFMU0UpDQpjYWxjdWxhdGVNQVBFcyhhZnRzKQ0KYGBgDQoNCg==