<>
" 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: [email protected]
[mailto:[email protected]] Im Auftrag von Michael
McCulloch
Gesendet: Mittwoch, 21. Oktober 2009 20:07
An: [email protected]
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
> [email protected]
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Michael
> McCulloch
> Sent: 21 October 2009 18:21
> To: [email protected]
> 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
>> [email protected]
>>
>> 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
[email protected]
*
* 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/