4 votes

Macros dans la boucle for dans Stata

J'ai des variables locales x1 , x2, and x3 comme suit

local x1 2 3 5
local x2 5 9 7
local x3 1 3 4

Je définis maintenant local x comme

local x `x1' `x2' `x3' 

Ensuite, je définis la boucle for comme suit

 foreach var of varlist `x'{
    reg y `var'}

Le problème est que stata me donne l'erreur (note y est la variable dépendante)

invalid name

Toute suggestion à cet égard sera très appréciée.

6voto

Richard Herron Points 3733

Je considère les macros comme une "frappe différée". C'est l'approche que j'utilise.

sysuse auto, clear
local x1 weight
local x2 headroom trunk
local x3 length turn

forvalue i = 1/3 {
    regress price `x`i''
}

3voto

Keith Points 818

En supposant qu'il s'agit de variables, la solution de Richardh fonctionnerait évidemment. Cependant, elle exige que vous renommiez toutes vos macros, même si ce n'est pas nécessaire.

Il suffit de développer les macros deux fois :

local x x1 x2 x3
foreach var of local x {
   reg y ``var''
}

Vous pouvez également procéder ainsi, mais vous rencontrerez des problèmes si vos listes de variables sont trop longues :

local x "`x1'" "`x2'" "`x3'" 
foreach var of local x {
  reg y `var'
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X