Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

RE: st: Re: assistance writing a loop to create a panel dataset

From   "" <>
Subject   RE: st: Re: assistance writing a loop to create a panel dataset
Date   Sun, 13 Nov 2005 17:01:57 -0500

However feeble you think your code may be (& I have certainly authored some
very primitive stuff & still do), it would 
allow others to better assist you were you to share it.  With the data
clean up you have already performed, it certainly 
sounds like you are able to do some things in Stata.  Nonetheless,  to get
data in long format, you'd want to check 
out the reshape command.  

Without knowing more, it's hard to see how & what looping your project
might actually require.  If you plan on 
looping through variables on a given observation, then you might not want
things in long format.  Or you might 
want to loop through the variables first & then reshape.  At least show us
what the end result should look like -- 
formulating that is often very helpful in getting yourself to the desired

I look forward to hearing more.

Eric G. Wruck

Original Message:
From: tony fong
Date: Sun, 13 Nov 2005 12:57:37 -0800
Subject: st: Re: assistance writing a loop to create a panel dataset

Hi all,
Nick mentioned that I should show the code I've been working on to change
dataset into panel data, but I haven't been able to put anything together 
worth showing as I'm new to writing code (so I'm still at square one).  
Below I also try to repost the example of what my data currrently looks 
like, as it was kind of tough to read in the last email. If anyone could 
assist me it'd be greatly appreciated.

id	sch1	sch2	start1	end1	start2	end2
1	73	.	199308	200000	.	.
2	46	.	199307	199506	.	.
3	12	16	199308	199505	199508	199606
4	94	58	199408	199412	199501	199606
5	24	.	199608	199706	.	.
6	84	43	199308	199605	199608	199611
7	16	.	199508	200000	.	.
8	59	87	199309	199406	199609	200000

where sch1 and sch2 represent the school ID that the teacher was teaching
for the respective teaching spells 1 and 2, and start1-end2 represent the 
start and end dates of spells 1 and 2, where the first four digits is the 
year and the last two digits is the month of that year (actually my data
five possible start and end date spells, but it got too messy in pasting
info above). If the end date is 200000, then the teacher remained at that 
school until the data was right-censored in 1998. I've cleaned the data so 
that all of the spells are in order and none of them overlap (although
are gaps of time between some teaching spells). What I'm trying to do is 
create a panel data set in long format, with one observation for each year 
from 1992 until 1997 for every individual. It would give the school that
individual taught at for each year (where for the year 1995, for instance, 
it would correspond to the school number that the teacher taught at for any 
of the months from 199507 through 199606, inclusive), or it'd be a missing 
value if the teacher did not teach during that year since some teachers 
started later and many teachers quit after only a year or two. I've tried
create a set of loops that loops through each consecutive non-missing spell 
to fill in the variables school92-school97 (which represent the school 
taught at for each year) based on the start and end dates of each spell,
I've been unable to do it. Also, some teachers teach at one school for half 
the year and another school for the rest of the year -- in this case the 
first school should count for that particular year. If anyone can help me 
out with the code that would accomplish this task it would be very much 

*   For searches and help try:

mail2web - Check your email from the web at .

*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index