Compiler plusieurs variables avec préfixe commun l'aide d'une macro
J'ai un certain nombre de variables dont le nom commence par le préfixe indoor
. Ce qui vient après indoor
n'est pas numérique (qui rendrait les choses plus simples).
Je voudrais un tableau pour chacune de ces variables.
Mon code est le suivant:
local indoor indoor*
foreach i of local indoor {
tab `i' group, col freq exact chi2
}
Le problème est que indoor
dans le foreach
commande résout indoor*
et de ne pas la liste de la indoor
questions, comme je l'espère. Pour cette raison, la tab
commande est suivie par un trop grand nombre de variables (il ne peut gérer que deux) et il en résulte une erreur.
La seule solution est de remplacer le premier commandement avec:
local indoor <full list of indoor questions>
Mais c'est ce que je voudrais éviter, c'est de trouver tous les noms de ces variables, puis de les coller dans le code. Il semble qu'il est plus rapide pour résoudre ce problème, mais je ne peux pas penser à tout.
OriginalL'auteur tt1977 | 2010-09-13
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire avec
indoor' that did not adhere to the rules of naming variables in a -varlist-, then varlist expansion in "foreach i of var
intérieur" échec et de laisser l'utilisateur confus.Il n'est pas SI mauvais, aussi longtemps que vous comprenez que Stata décompresse un local/global macro avant l'exécution de la commande.
OriginalL'auteur Keith
L'astuce est d'utiliser
ds
ouunab
pour créer le varlist expansion avant de demander Stata faire une boucle sur les valeurs dans leforeach
boucle.Voici un exemple de chacun:
**UTILISER
ds
POUR CRÉER VOTRE VARLIST POUR LAforeach
BOUCLE:**NETTOYONS VOS TABLES UN PEU AVEC DES EN-TÊTES VIA
display
** * * * VOTRE
tab
TABLESOU à l'aide de
unab
à la place:Les avantages de
ds
entrer en jeu si vous voulez sélectionner votre intérieur vars à l'aide d'une délicate sélection de la règle, comme la sélection de l'intérieur vars basé sur les informations de l'étiquette de la variable ou de toute autre caractéristique.OriginalL'auteur eric.a.booth
Ce serait le travail. Il est presque identique au code en question.
OriginalL'auteur Keith
Cette question est en deux parties:
1. Comment attribuer plusieurs noms de variable locale macro
Comme d'autres l'ont noté, le choix évident ici est l'utilisation des commandes
ds
etunab
:2. Comment faire pour automatiser le calcul des variables de partage d'un préfixe commun
Pour cette partie, la plus simple et la plus "valable" boucle de syntaxe dans le contexte de Stata est en fait celui proposé par @Vadim (et qui ont été votés):
Sans aucun doute, on peut mélanger les deux approches, mais dans ce cas, il est juste inutile et inefficace.
OriginalL'auteur Pearly Spencer
OriginalL'auteur Vadim