you could do the following:
bys Id Result2: gen helpvar = _n == 1
egen kun_eisvar = total(helpvar), by(Id)
replace kun_eisvar = kun_eisvar == 1
drop helpvar
Hope this helps,
Johannes
----------------------
Johannes Geyer
Deutsches Institut für Wirtschaftsforschung (DIW Berlin)
German Institute for Economic Research
Department of Public Economics
DIW Berlin
Mohrenstraße 58
10117 Berlin
Tel: +49-30-89789-258
[email protected] schrieb am 18/03/2009 11:05:24:
> I have the following panel.
>
>
> Id Commdate Result2
> 400 05may2008 TM FAILURE
> 400 29may2008 DM FAILURE
> 400 05oct2008 TM Ei-svar
> 400 27oct2008 TM Ei-svar
> 400 30nov2008 TM Ei-svar
> 400 04jan2009 TM Ei-svar
>
> I would like to generate a binary variable that equals 1 if a
> category "TM Ei-svar" within result2 occurs. But I only want this to
> happen if no other category in Result2 is present within Id, either
> onwards are backwards in time (Commdate). Nick Cox and Martin Weiss
> gave excellent advice on an earlier related problem pointing me to
> 'bys' and using [_N] within replace statements. Nick also refered me
> to further free 'by' tricks at
>
> http://www.stata-journal.com/sjpdf.html?articlenum=pr0004
>
> However, I am still unable to solve the above problem. I tried
>
> gen kun_eisvar=0
> bys Id (Commdate):replace kun_eisvar=1 if ///
> (result2=="TM Ei-svar"& ///
> result2[_N]!="TM FAILURE"&result2[_N-1]!="TM FAILURE"& ///
> result2[_N]!="TM SUCCESS"&result2[_N-1]!="TM SUCCESS"& ///
> result2[_N]!="SUCCESS DM SMS 1999"&result2[_N-1]!="SUCCESS DM
SMS1999"& ///
> result2[_N]!="DM SUCCESS NY BIND"&result2[_N-1]!="DM SUCCESS NY
BIND"& ///
> result2[_N]!="DM SUCCESS"&result2[_N-1]!="DM SUCCESS"& ///
> result2[_N]!="DM FAILURE"&result2[_N-1]!="DM FAILURE")
>
> though, this does not work. See an example below.
>
> Id Commdate Result2 kun_eisvar
> 400 05may2008 TM FAILURE 0
> 400 29may2008 DM FAILURE 0
> 400 05oct2008 TM Ei-svar 1
> 400 27oct2008 TM Ei-svar 1
> 400 30nov2008 TM Ei-svar 1
> 400 04jan2009 TM Ei-svar 1
>
> Because Result2 has other categories than 'TM Ei-svar' for Id=400
> this observation should not equal 1.
>
> Any advice on where I went wrong is appreciated.
>
>
> Best wishes,
> Alexander
>
>
>
>
>
> *
> * 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/
*
* 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/