Along these lines, you could also specify that the two-digit year should be a string variable with, e.g.
reshape long var1_ var2_, i(id) j(year) string
David
-----Original Message-----
From: [email protected]
[mailto:[email protected]]On Behalf Of Philip Ryan
Sent: 02 August 2005 14:06
To: [email protected]
Subject: Re: st: Extract variable name in order to change it,
iteratively
You might try an alternative specification of the j index on -reshape-.
Here is a little data set:
. list, clean noobs
id var1_00 var1_01 var1_88 var1_89 var2_00 var2_01 var2_88 var2_89
1 11 13 12 3 4 6 67 8
2 9 6 14 5 10 2 18 3
3 13 4 11 2 15 8 8 7
. reshape long var1_ var2_, i(id) j(year 00 01 88 89)
Data wide -> long
-----------------------------------------------------------------------------
Number of obs. 3 -> 12
Number of variables 9 -> 4
j variable (4 values) -> year
xij variables:
var1_00 var1_01 ... var1_89 -> var1_
var2_00 var2_01 ... var2_89 -> var2_
-----------------------------------------------------------------------------
. li, clean noobs
id year var1_ var2_
1 0 11 4
1 1 13 6
1 88 12 67
1 89 3 8
2 0 9 10
2 1 6 2
2 88 14 18
2 89 5 3
3 0 13 15
3 1 4 8
3 88 11 8
3 89 2 7
That is to say, _you_ may specify the values of the subobservation index rather
than allow Stata to try and determine them - unsuccesfully on this occasion, as
you discovered.
Phil
Quoting Jeppe Warberg Larsen <[email protected]>:
> I have a wide data structure. Each observation consists of a unique
> identifier (say, id) and some series of annual variables with a
> two-digit suffix (running in different intervals). Like this:
>
> id var1_88 var1_89 ... var1_02 var2_92 var2_93 ... var2_02
> var3_...................................
>
> Now I want to reshape it to long, but stata fails to read the
> two-digit values after the turn of century (00 01 02), so I need to
> rename all varibles to a four-digit year.
>
> foreach var of varlist var1_88-var100_02{
> //save name of variable in a local string
> //do nessecary string manipulation (I can do that)
> //rename var
> }
>
> My problem seems to be:
> 1) extracting the name of the current variable
> 2) rename
>
> Do you understand what I'm asking?
> I'd be glad if someone can help, and please don't tell me that it
> would be easier to do this manually, because I will need to do this
> operation many times...
>
> Jeppe W. Larsen
>
> *
> * For searches and help try:
> * http://www.stata.com/support/faqs/res/findit.html
> * http://www.stata.com/support/statalist/faq
> * http://www.ats.ucla.edu/stat/stata/
>
--
Philip Ryan
Associate Professor
Department of Public Health
Associate Dean (IT)
Faculty of Health Sciences
Head, Data Management and Analysis Centre
Department of Public Health and Department of General Practice
University of Adelaide
5005 South Australia
AUSTRALIA
CRICOS Provider Number 00123M
-----------------------------------------------------------
This email message is intended only for the addressee(s)
and contains information that may be confidential and/or
copyright. If you are not the intended recipient please
notify the sender by reply email and immediately delete
this email. Use, disclosure or reproduction of this email
by anyone other than the intended recipient(s) is strictly
prohibited. No representation is made that this email or
any attachments are free of viruses. Virus scanning is
recommended and is the responsibility of the recipient.
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/