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

From |
"Martin Weiss" <martin.weiss1@gmx.de> |

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

Subject |
AW: AW: st: RE: creating expanded records with indicator variables, where different ID's reside in the same rows |

Date |
Wed, 21 Oct 2009 21:54:53 +0200 |

<> I had a solution involving -stack- that was a _couple_ of lines longer than the winning proposal by Nick... HTH Martin -----Ursprüngliche Nachricht----- Von: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Michael McCulloch Gesendet: Mittwoch, 21. Oktober 2009 21:01 An: statalist@hsphsun2.harvard.edu Betreff: Re: AW: st: RE: creating expanded records with indicator variables, where different ID's reside in the same rows Thanks Martin. Nevertheless, I learned something useful with -stack-. On Oct 21, 2009, at 11:55 AM, Martin Weiss wrote: > > <> > > > " the lingering bug is what to do about records where both samples A > and > B" > > > Stick to Nick`s solution, I was outgunned on this one :-) > > > > HTH > Martin > > > -----Ursprüngliche Nachricht----- > Von: owner-statalist@hsphsun2.harvard.edu > [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Michael > McCulloch > Gesendet: Mittwoch, 21. Oktober 2009 20:07 > An: statalist@hsphsun2.harvard.edu > Betreff: Re: st: RE: creating expanded records with indicator > variables, > where different ID's reside in the same rows > > Thanks to Nick and Jeph and Martin. Here's a summary: > 1. Nick's example works very well. > 2. Jeph's example not allowing the -keep- statement, probably because > I'm using v10. > 3. I created a partial based on Martin's recommendation of -stack-; > the lingering bug is what to do about records where both samples A and > B are true for the same id, as in ID==11? > > * My solution > ***** > webuse stackxmpl, clear > drop c d > set obs 3 > replace a=11 in 3 > replace b=11 in 3 > list > stack a a b b, into(id) clear wide > sort _stack > drop if a==.&b==. > replace a=1 if a!=. > replace b=1 if b!=. > replace a=0 if a==. > replace b=0 if b==. > sort id > list id a b > ***** > > * Nick's example > ***** > webuse stackxmpl, clear > drop c d > set obs 3 > replace a=11 in 3 > replace b=11 in 3 > list > gen long id = _n > expand 2 if a != b > bysort id : replace id = cond(_n == 1, a, b) > replace a = a == id > replace b = b == id > l id a b > ***** > > > > On Oct 21, 2009, at 10:52 AM, Nick Cox wrote: > >> OK. Try this: >> >> input a b >> 5 5 >> 6 11 >> end >> gen long id = _n >> expand 2 if a != b >> bysort id : replace id = cond(_n == 1, a, b) >> replace a = a == id >> replace b = b == id >> l >> >> >> Nick >> n.j.cox@durham.ac.uk >> >> >> -----Original Message----- >> From: owner-statalist@hsphsun2.harvard.edu >> [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Michael >> McCulloch >> Sent: 21 October 2009 18:21 >> To: statalist@hsphsun2.harvard.edu >> Subject: Re: st: RE: creating expanded records with indicator >> variables, >> where different ID's reside in the same rows >> >> Sorry Nick, yes you're correct, it should be: >> id A B >> 5 1 1 >> 6 1 0 >> 11 0 1 >> Michael >> >> On Oct 21, 2009, at 10:18 AM, Nick Cox wrote: >> >>> Sorry, but I can't even follow your first two steps. Why isn't the >>> second observation 6 1 0? >>> >>> Nick >>> n.j.cox@durham.ac.uk >>> >>> Michael McCulloch >>> >>> I have a data structure that has been gathered as follows, where >>> each >>> cell contains the subject ID if A is true, and similarly for B. >>> Therefore, for subject 5, I have A=yes and B=yes, whereas for >>> subjects >>> 6 and 11, only B=yes. >>> >>> A B >>> 5 5 >>> 6 11 >>> >>> I'd like to transform the data structure such that each row would >>> have >>> ID, and indicator variables for A and B. >>> id A B >>> 5 1 1 >>> 6 0 1 >>> 11 0 1 >>> >>> I've tried an approach like this, where I create indicator variables >>> but A and B, but am not sure how to "expand" from the data >>> structure >>> where different ID's reside in the same rows. >>> . gen id1=a >>> . gen id2=b >>> . gen aa=1 if a!=. >>> . gen bb=1 if b!=. >>> >>> It also looks like -reshape- is not suitable because different ID's >>> reside in the same rows. >>> Any advice would be appreciated. >> >> * >> * 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/ > > > > Michael McCulloch > Pine Street Foundation > 124 Pine Street > San Anselmo, CA 94960-2674 > tel: 415-407-1357 > fax: 206-338-2391 > mm@pinestreetfoundation.org > > > > > > > > * > * 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/ Michael McCulloch Pine Street Foundation 124 Pine Street San Anselmo, CA 94960-2674 tel: 415-407-1357 fax: 206-338-2391 mm@pinestreetfoundation.org * * 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/

**References**:**Re: AW: st: RE: creating expanded records with indicator variables, where different ID's reside in the same rows***From:*Michael McCulloch <mm@pinest.org>

- Prev by Date:
**Re: AW: st: RE: creating expanded records with indicator variables, where different ID's reside in the same rows** - Next by Date:
**st: New -panels- package available from SSC** - Previous by thread:
**Re: AW: st: RE: creating expanded records with indicator variables, where different ID's reside in the same rows** - Next by thread:
**st: New -panels- package available from SSC** - Index(es):

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