Tengo muchas variables cuyo nombre comienza con el prefijo indoor
. Lo que viene después de indoor
no es numérico (eso haría todo más simple). Quiero una tabulación para cada una de estas variables. Así que escribí este código:En Stata, ¿cómo se asigna una larga lista de nombres de variables a una macro local?
local indoor indoor*
foreach i of local indoor {
tab `i' group, col freq exact chi2
}
El problema es que en el comando indoor
foreach
resuelve a indoor*
y no a la lista de las preguntas indoor
, como esperaba. Por esta razón, el comando tab
es seguido por demasiadas variables (solo puede manejar dos) y esto da como resultado un error.
La solución simple es sustituir el primer comando con:
local indoor <full list of indoor questions>
Pero esto es lo que me gustaría evitar, es decir, a tener que encontrar todos los nombres de estas variables y luego pegarlos en el código . Parece que hay una solución más rápida para esto, pero no puedo pensar en ninguna.
Esto mezcla la sintaxis de -foreach- un poco. El manual de ayuda indica que desea usar "foreach i de varlist var1 var2" donde var1 y var2 son variables O use "foreach i of local indoor", no combinarlas como en el ejemplo anterior. Esto _ funciona_ en este ejemplo, sin embargo, si tuviera una lista en el 'interior' local que no se apegara a las reglas de nombrar variables en una -varista-, entonces la expansión varlist en "foreach i of var' indoor '"fallaría y deja al usuario confundido. –
No es TAN TANTO, siempre y cuando comprenda que Stata descomprime una macro local/global antes de ejecutar el comando. – Keith