iode.execute_lec
- iode.execute_lec(lec: str, period: str | int | Period = None) float | List[float] | Series[source]
Compute a LEC formula using the current Variables and Scalars databases. The formula may be evaluate at a specific period or on the whole sample (no value for period is passed).
- Parameters:
- lec: str
LEC expression to be evaluated.
- period: str or int or Period, optional
Period at which the LEC formula is evaluated. If the passed value is of type int, then it represents the position of the period in the current sample. If the passed value is None, empty string or -1, the LEC expression is evaluated over the whole sample. Default to None.
- Returns:
- float or list(float)
Examples
>>> from iode import SAMPLE_DATA_DIR >>> from iode import execute_lec, equations, scalars, variables >>> equations.load(f"{SAMPLE_DATA_DIR}/fun.eqs") Loading .../fun.eqs 274 objects loaded >>> scalars.load(f"{SAMPLE_DATA_DIR}/fun.scl") Loading .../fun.scl 161 objects loaded >>> variables.load(f"{SAMPLE_DATA_DIR}/fun.var") Loading .../fun.var 394 objects loaded
>>> equations["ACAF"].lec '(ACAF/VAF[-1]) :=acaf1+acaf2*GOSF[-1]+\nacaf4*(TIME=1995)' >>> variables["ACAF", "2000Y1"] 10.046610792200543 >>> lec = "(acaf1 + acaf2 * GOSF[-1] + acaf4*(TIME=1995)) * VAF[-1]" >>> # pass a period value as string >>> execute_lec(lec, "2000Y1") 10.046610792200543 >>> # pass a period position in the sample >>> t = variables.sample.index("2000Y1") >>> t 40 >>> execute_lec(lec, t) 10.046610792200543 >>> # compute the LEC formula over the whole sample >>> execute_lec(lec) time 1960Y1 NaN 1961Y1 4.288415 1962Y1 4.532163 1963Y1 4.951813 ... 2012Y1 -55.559290 2013Y1 -68.894654 2014Y1 -83.340625 2015Y1 -96.410420 dtype: float64 >>> variables["ACAF"] Workspace: Variables nb variables: 1 filename: ...fun.var description: Modèle fun - Simulation 1 sample: 1960Y1:2015Y1 mode: LEVEL name 1960Y1 1961Y1 1962Y1 ... 2013Y1 2014Y1 2015Y1 ACAF na na na ... -68.89 -83.34 -96.41