Los bucles sirven para codificar tareas repetitivas. Según Baum “cita donde dice que los que no hacen loops son unos peras”.

Las formas más usuales de hacer loops en STATA son los comandos foreach y forvalues.

forvalues


forvalues i = 1/4 {
    display "`i'"
}

Acá ponemos la local macro i como índice y la seteamos como un rango 1/4 (1, 2, 3, 4). Cada vez que se ejecute el cuerpo del bucle (lo que va entre ‘{‘ y ‘}’) el valor de esa macro va a ir tomando los distintos valores de ese rango. Por lo tanto, ese código es equivalente a ejecutar:


display "1"
display "2"
display "3"
display "4"

Por eso este tipo de constructs son tan útiles para ahorrar trabajo.

foreach

El comando foreach itera por todos los contenidos de una macro. Puede ser una lista de variables, como en este ejemplo con el data-set que viene con stata lifeexp.dta:


sysuse lifeexp.dta // abrir datos del sistema

// loop para las variables entre lexp y safewater

foreach v of varlist lexp-safewater {
	summ `v'
	correlate `v' popgrowth
	scatter popgrowth `v'
}

Este loop itera sobre todas las variables del data-set que están entre lexp y safewater (lexp, gnppc y safewater), obtiene un summarize de cada variable, toma la correlación de cada variable con popgrowth y hace un gráfico de puntos de cada variable contra popgrowth.

Anuncios