This is neat, and can be compressed and slightly corrected further:
bys i:gen spell=_n
keep if t==spell
telescopes to
bys i (t): keep if t==_n
The new variable -spell- is dispensable.
-bysort i- is not quite error-proof.
Nick
[email protected]
Martin Weiss
The first case should be as easy as
*************
clear*
inp byte(i) t y
1 1 0
1 2 0
1 5 0
1 6 0
1 7 0
1 8 0
2 2 0
2 5 0
2 6 0
2 7 0
2 8 0
end
compress
bys i:gen spell=_n
keep if t==spell
l, noobs sepby(i)
Nikolaos Kanellopoulos
I have a very simple unbalanced panel, where individuals are allowed to drop in and out of the sample. I want to create two separate datasets with the following sampling criteria.
For the first one, individuals that appear in the first wave should remain in the sample at subsequent years until the first time they drop out of the panel,
either completely or not. If they rejoin the panel later these observations should not be used. For instance in the following example I want to keep only observations 129 and 130.
+----------------------+
i t y
----------------------
129. 1 1 0
130. 1 2 0
133. 1 5 0
134. 1 6 0
135. 1 7 0
136. 1 8 0
+----------------------+
137. 2 2 0
138. 2 5 0
139. 2 6 0
140. 2 7 0
141. 2 8 0
+----------------------+
For the second dataset individuals should remain in the sample at subsequent years from the first time they are observed until the first time they drop out of the panel, either completely or return again. Again , if they rejoin the panel later these observations should not be used. For instance in the following example I want to keep only observations 129 to 130 and 137.
+----------------------+
i t y
----------------------
129. 1 1 0
130. 1 2 0
133. 1 5 0
134. 1 6 0
135. 1 7 0
136. 1 8 0
+----------------------+
137. 2 2 0
138. 2 5 0
139. 2 6 0
140. 2 7 0
141. 2 8 0
+----------------------+
*
* 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/