Thanks to Martin and Michael for their kind replies.
The data I am using come from the 2008 Mexican Encuesta Nacional de Ingresos y Gastos de los Hogares ENIGH). Households are interviewed for 6 months in staggered panels, reflected in the values assigned to variables mes_1 through mes_6, e.g.
mes_1
Freq. Value
11576 7
34660 8
36142 9
27163 10
23731 .
For a panel first interviewed in February, the values of mes_1 through mes_6 are
+-----------------------------------------------+
mes_1 mes_2 mes_3 mes_4 mes_5 mes_6
-----------------------------------------------
1. 7 6 5 4 3 2
+-----------------------------------------------+
To adjust the monetary figures reported in each month (ing_1 through ing_6) for the effects of inflation, I have a vector of scalars that represent consumer prices (where August is the numeraire), e.g.,
scalar jul08=0.9942
scalar ago08=1.0000
scalar sep08=1.0068
scalar oct08=1.0136
So, if mes_1 were 7, I would divide the value in ing_1 by the July scalar 0.9942; if mes_1 were 10, I would divide by 1.0136
I suppose that I could write
.replace ing_1=ing_1/def_7 if mes_1==7
.replace ing_1=ing_1/def_8 if mes_1==8
.replace ing_1=ing_1/def_9 if mes_1==9
.replace ing_1=ing_1/def_10 if mes_1==10
.replace ing_2=ing_2/def_6 if mes_1==6
.replace ing_2=ing_2/def_7 if mes_1==7
.replace ing_2=ing_2/def_8 if mes_1==8
.replace ing_2=ing_2/def_9 if mes_1==9
etc
but this seems so bulky and inelegant -- and this is where I thought a vector notation would help ... but Michael, if I understand his response correctly, feels that a loop of the sort
replace ing_`t'=ing`t'/DEF[mes_`t']
isn't going to happen.
Martin, does this clarify my question?
Dan
--- On Tue, 8/11/09, Dan Waldo <[email protected]> wrote:
> From: Dan Waldo <[email protected]>
> Subject: using vector notation to simplify coding
> To: "statalist" <[email protected]>
> Date: Tuesday, August 11, 2009, 9:58 AM
> Dear Statalist members,
>
> I have data in monthly expenditures in variables ing_1
> through ing_6, and survey months in variables mes_1 through
> mes_6 (these vary from respondent to respondent). I wish to
> adjust the monthly expenditures for inflation, and I have
> deflation factors in variables def_1 through def_12.
>
> I am pretty accomplished in SAS, but only a novice in
> Stata. In SAS I would say:
>
> array def {12} def_1 - def_12;
> array ing {6} ing_1 - ing_6;
> array mes {6} mes_1 - mes_6;
> do t=1 to 6;
> month=mes{t};
> ing{t}=ing{t}/def{month};
> end;
>
> I have been searching unsuccessfully for the Stata analogue
> to this; I am sure it is written somewhere and I am just not
> using the best search terms.
>
> Will somebody please point me to the proper place?
>
> Thanks!
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/