[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
<Alexander.Severinsen@telenor.com> |

To |
<statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: bys and [_N] within replace |

Date |
Wed, 18 Mar 2009 14:05:15 +0100 |

Johannes, thanks for this. Eva Poen gave me this code, gen other = Result2 != "TM Ei-svar" bysort Id (Commdate) : replace other = sum(other) by Id (Commdate) : gen dummy = other[_N]==0 drop other which works fine. I tried your code as well, but it does not replicate the above solution, most likely because my statement of the problem was unclear. Sorry about that. I am still puzzled about why my code did not work. I thought that I could use _N to look forward and _N-1 to look backwards, within Id and Commdate. Anyway, problem solved. Thanks for the help. Best wishes, Alexander Severinsen -----Opprinnelig melding----- Fra: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] På vegne av Johannes Geyer Sendt: 18. mars 2009 11:28 Til: statalist@hsphsun2.harvard.edu Emne: Re: st: bys and [_N] within replace 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 owner-statalist@hsphsun2.harvard.edu 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/ * * 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/

**Follow-Ups**:**RE: st: bys and [_N] within replace***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

**Re: st: bys and [_N] within replace***From:*Eva Poen <eva.poen@gmail.com>

**RE: st: bys and [_N] within replace***From:*Johannes Geyer <JGeyer@diw.de>

**References**:**st: bys and [_N] within replace***From:*<Alexander.Severinsen@telenor.com>

**Re: st: bys and [_N] within replace***From:*Johannes Geyer <JGeyer@diw.de>

- Prev by Date:
**RE: st: bys and [_N] within replace** - Next by Date:
**RE: st: bys and [_N] within replace** - Previous by thread:
**Re: st: bys and [_N] within replace** - Next by thread:
**RE: st: bys and [_N] within replace** - Index(es):

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