Formulių kalba
Šiame puslapyje
TS 2.11.14. Formulės leidžia apskaičiuoti naujas laiko eilutes iš kitų eilučių – kaip Excel formulės, tik veiksmai atliekami su visomis eilutės reikšmėmis iš karto. Formulę pridėsite analizėje pasirinkę formulės eilutę (žr. Analizės); formulės taip pat veikia Excel priede.
Sintaksė
| Elementas | Pavyzdys | Paaiškinimas |
|---|---|---|
| Kitos analizės eilutės vardas | s1, bvp |
Eilutės pavadinimas formulėse (trumpasis vardas) toje pačioje analizėje |
| Skaičius | 100, 0.5, 1e3 |
Dešimtainis skyriklis formulėse – taškas |
| Veiksmų ženklai | + - * / ** |
Sudėtis, atimtis, daugyba, dalyba, kėlimas laipsniu; -s – priešingas ženklas |
| Skliaustai | (s1 - s2) / s2 |
Nustato veiksmų tvarką |
| Funkcija | yoy(s1), convert(s1, "Q", "sum") |
Bet kuri operacija pagal savo pavadinimą |
| Vardiniai parametrai | cycle(s1, "hp", output="pct") |
Parametrą galima nurodyti pavadinimu |
| Tekstas | "Q", "2019-Q4" |
Tekstas rašomas kabutėse |
| Sąrašas | [0.6, 0.4] |
Pvz., svoriai |
| Duomenų bazės eilutė | S("ESTAT/namq_10_gdp/Q.CLV10_MEUR.SCA.B1GQ.LT") |
Įkelia bet kurią eilutę pagal jos raktą (raktas rodomas eilutės puslapyje) |
| Vartotojo eilutė | U("bvp_prognoze") |
Įkelia jūsų išsaugotą vartotojo eilutę |
| Konstantos | pi, e |
Matematinės konstantos |
Funkcijos parametrai rašomi po eilutės: iš eilės (change(s, "pct", "year")) arba pavadinimu (change(s, kind="log")). Neprivalomi parametrai gali būti praleisti – taikomos numatytosios reikšmės.
Kaip skaičiuojama
- Eilutė ir skaičius: veiksmas atliekamas su kiekviena eilutės reikšme (
s * 100). - Dvi eilutės: veiksmas atliekamas su to paties laikotarpio reikšmėmis. Eilutės turi būti vienodo dažnio – kitaip rodoma klaida su pasiūlymu naudoti
convert. Rezultatas apima visus abiejų eilučių laikotarpius; kur vienos iš eilučių reikšmės trūksta, rezultato reikšmė taip pat trūksta. - Funkcijos gali būti įdėtos viena į kitą:
yoy(convert(s1, "Q", "average")). - Rezultato pavadinimas – formulės tekstas, nebent eilutei suteiksite savo pavadinimą.
- Formulės gali naudoti kitas formules; jos apskaičiuojamos reikiama tvarka. Ciklinės nuorodos (kai formulės nurodo viena kitą ratu) neleidžiamos.
Pavyzdžiai
Dalis BVP, % – valdžios sektoriaus skola, palyginti su BVP:
skola / bvp * 100
Prekybos balansas:
eksportas - importas
Realusis darbo užmokesčio augimas (tiksli formulė):
((1 + yoy(du) / 100) / (1 + yoy(vki) / 100) - 1) * 100
BVP vienam gyventojui, EUR (BVP mln. EUR, gyventojai – tūkst.):
bvp / gyv * 1000
Realioji eilutė iš nominalios ir defliatoriaus (2015 = 100):
nominalus / defliatorius * 100
Ketvirčio vidurkis iš mėnesinių duomenų ir metinis pokytis:
yoy(convert(s1, "Q", "average"))
BVP atotrūkis (nuokrypis nuo HP trendo, %):
cycle(bvp_real, "hp", output="pct")
Svertinis trijų šalių vidurkis:
wavg(lv, ee, pl, weights=[0.5, 0.3, 0.2])
Lietuvos ir euro zonos infliacijos skirtumas (procentiniais punktais):
S("ESTAT/prc_hicp_manr/M.RCH_A.CP00.LT") - S("ESTAT/prc_hicp_manr/M.RCH_A.CP00.EA")
(Tikslius raktus nukopijuokite iš laiko eilučių puslapių – pavyzdyje raktai pateikti iliustraciniais tikslais.)
Trūkstamų reikšmių pakeitimas nuliu:
if_missing(s1, 0)
Apribojimai ir saugumas
Formulių kalba sąmoningai paprasta ir saugi: leidžiami tik skaičiai, tekstas kabutėse, sąrašai, eilučių vardai, veiksmų ženklai ir leistinos funkcijos. Palyginimai, sąlygos, kintamųjų priskyrimas ir kitos programavimo konstrukcijos nenaudojami. Formulė gali būti iki 2000 simbolių ilgio.
Klaidų pranešimai
Klaidingos formulės atveju rodomas pranešimas su paaiškinimu ir vieta formulėje, pvz.:
| Pranešimas | Priežastis |
|---|---|
| Nežinomas vardas | Eilutės trumpasis vardas parašytas su klaida arba tokios eilutės analizėje nėra |
| Nežinoma funkcija | Funkcijos pavadinimas parašytas su klaida – žr. funkcijų žinyną |
| Skirtingi dažniai | Veiksmas tarp skirtingo dažnio eilučių – naudokite convert |
| Sintaksės klaida | Trūksta skliausto, kabučių ar kablelio |
| Laiko eilutė nerasta | S("…") rakte klaida – nukopijuokite raktą iš eilutės puslapio |
Visų funkcijų sąrašas su parametrais – Funkcijų žinynas.