Chiamare una funzione

Una funzione utente viene chiamata, o invocata, usando il suo nome, eventualmente seguito da argomenti; se si usano due o più argomenti, vanno separati da virgole. L'esempio seguente mostra una chiamata di funzione che rispetta la definizione della funzione stessa.


      # Definizione della funzione
      function ols_ess (series y, list xvars)
        ols y 0 xvars --quiet
        scalar myess = $ess
        printf "ESS = %g\n", myess
        return scalar myess
      end function
      # Script principale
      open data4-1
      list xlist = 2 3 4
      # Chiamata della funzione (il valore restituito viene qui ignorato)
      ols_ess price, xlist

La chiamata della funzione contiene due argomenti: il primo è una serie di dati specificata per nome, e il secondo è una lista di regressori. Si noti che la funzione produce la variabile myess come risultato, ma in questo esempio esso è ignorato.

(Una nota a margine: se si desidera che una funzione calcoli alcuni valori che hanno a che fare con una regressione, ma non si è interessati ai risultati completi della regressione, è possibile usare l'opzione --quiet con il comando di stima, come visto sopra.)

Un secondo esempio mostra una chiamata di funzione che assegna i valori prodotti dalla funzione a variabili:


      # Definizione di funzione
      function ess_uhat (series y, list xvars)
        ols y 0 xvars --quiet
        scalar myess = $ess
        printf "ESS = %g\n", myess
        series uh = $uhat
        return scalar myess, series uh
      end function
      # Script principale
      open data4-1
      list xlist = 2 3 4
      # Chiamata di funzione
      (SSR, resids) = ess_uhat price, xlist