Macro (sfi.Macro)¶
- 
class sfi.Macro¶
- This class provides access to Stata macros. - Method Summary - getGlobal(name)- Get the contents of a global macro. - getLocal(name)- Get the contents of a local macro. - setGlobal(name, value[, vtype])- Set the value of a global macro. - setLocal(name, value)- Set the value of a local macro. - Method Detail - 
static getGlobal(name)¶
- Get the contents of a global macro. - Parameters: - name (str) – - Name of the macro. It can be one of the following: - global macro such as “myname”
- return() macro such as “return(retval)”
- r() macro such as “r(names)”
- e() macro such as “e(cmd)”
- c() macro such as “c(current_date)”
- s() macro such as “s(vars)”
 - Returns: - Value of the macro. Returns an empty string if the macro is not found. - Return type: - str 
 - 
static getLocal(name)¶
- Get the contents of a local macro. - Parameters: - name (str) – Name of the macro. - Returns: - Value of the macro. Returns an empty string if the macro is not found. - Return type: - str 
 - 
static setGlobal(name, value, vtype='visible')¶
- Set the value of a global macro. If necessary, the macro will be created. - Parameters: - name (str) – Name of the macro. It can be one of the following: - global macro such as “myname”
- return() macro such as “return(retval)”
- r() macro such as “r(names)”
- e() macro such as “e(cmd)”
- s() macro such as “s(vars)”
 
- value (str) – Value to store in the macro.
- vtype ({'visible', 'hidden', 'historical'}, optional) – If the macro is a type of return value, vtype sets whether the return value is visible, hidden, or historical. This parameter is ignored when the macro is a global or a s() macro. Default is ‘visible’.
 
- name (str) – 
 - 
static setLocal(name, value)¶
- Set the value of a local macro. If necessary, the macro will be created. - Parameters: - name (str) – Name of the macro.
- value (str) – Value to store in the macro.
 
 
- 
static 
Examples¶
The following provides a few quick examples illustrating how to use this class:
>>> from sfi import Macro
>>> stata: sysuse auto, clear
(1978 Automobile Data)
>>> stata: regress mpg weight foreign
      Source |       SS           df       MS      Number of obs   =        74
-------------+----------------------------------   F(2, 71)        =     69.75
       Model |   1619.2877         2  809.643849   Prob > F        =    0.0000
    Residual |  824.171761        71   11.608053   R-squared       =    0.6627
-------------+----------------------------------   Adj R-squared   =    0.6532
       Total |  2443.45946        73  33.4720474   Root MSE        =    3.4071
------------------------------------------------------------------------------
         mpg |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      weight |  -.0065879   .0006371   -10.34   0.000    -.0078583   -.0053175
     foreign |  -1.650029   1.075994    -1.53   0.130      -3.7955    .4954422
       _cons |    41.6797   2.165547    19.25   0.000     37.36172    45.99768
------------------------------------------------------------------------------
>>> stata: ereturn list
scalars:
                  e(N) =  74
               e(df_m) =  2
               e(df_r) =  71
                  e(F) =  69.74846262000308
                 e(r2) =  .6627029116028815
               e(rmse) =  3.407059285651584
                e(mss) =  1619.287698167387
                e(rss) =  824.1717612920727
               e(r2_a) =  .6532015851691599
                 e(ll) =  -194.1830643938065
               e(ll_0) =  -234.3943376482347
               e(rank) =  3
macros:
            e(cmdline) : "regress mpg weight foreign"
              e(title) : "Linear regression"
          e(marginsok) : "XB default"
                e(vce) : "ols"
             e(depvar) : "mpg"
                e(cmd) : "regress"
         e(properties) : "b V"
            e(predict) : "regres_p"
              e(model) : "ols"
          e(estat_cmd) : "regress_estat"
matrices:
                  e(b) :  1 x 3
                  e(V) :  3 x 3
functions:
             e(sample)
>>> Macro.getGlobal('e(cmdline)')
'regress mpg weight foreign'
>>> Macro.setGlobal('e(cmdline)', 'Cmd: regress mpg weight foreign')
>>> Macro.getGlobal('e(cmdline)')
'Cmd: regress mpg weight foreign'
>>> Macro.setLocal('lm', 'This is a local macro')
>>> Macro.getLocal('lm')
'This is a local macro'