Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


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

Re: st: RE: generating variable from combination of three categorical variable


From   Nick Cox <[email protected]>
To   [email protected]
Subject   Re: st: RE: generating variable from combination of three categorical variable
Date   Thu, 19 May 2011 07:58:58 +0100

Your rules did not include what should happen in these situations, so
there is little surprise that the code does not work.

Why not start again and give the complete table of outputs for inputs
{0, 1, 2} X {0, 1, 2} X {0, 1, 2}?

Nick

On Thu, May 19, 2011 at 6:01 AM, prakash singh <[email protected]> wrote:
> Thanks Nick and Maria
>
> I was able to do till this point but got stuck when we have the situation
> see the cell arrangement for better understanding my problem
> var1    var2    var3    var4
> 1       2       1       2 (correct 3)
> 2       2       1       2 (correct 3)
> 1       1       2       2 (correct 3)
> 2       1       2       2 (correct 3)
> 0       2       2       3 (correct 2)
> 2       2       2       3 (correct 2)
>
>
> I have modified the commands also a bit
> gen var4 = max( var1, var2, var3)
> replace var4 = 3 if ( var1+ var2+ var3) >= 3 & var4!=1
> replace var4= max(var1, var2, var3) if var1==var2 & var1~=var3 |
> var1==var3 & var1~=var2
> but this is also not working perfect.
>
> Prakash
>
> On 5/18/11, Nick Cox <[email protected]> wrote:
>> Good catch.
>>
>> Nick
>>
>> On 18 May 2011, at 14:17, Maria Fleischmann <[email protected]
>>  > wrote:
>>
>>> Shouldn't it be:
>>>
>>> gen var4 = max(var1, var2, var3)
>>> replace var4 = 3 if (var1 + var2 + var3) == 3 & var4!=1
>>>
>>> otherwise you subsitute var4=3 if var1, var2, and var3 are all equal
>>> to '1'
>>>
>>>
>>> Maria
>>>
>>> On 18 May 2011 14:37, Nick Cox <[email protected]> wrote:
>>>>
>>>> You have six rules, which I think can be collapsed to 4 in the
>>>> first instance.
>>>>
>>>> (a) var1==0 & var2==0 & var3==0,
>>>> (b) var4=1 if var1==1 & var2==1 & var3==1
>>>> (c) var4=2 if var1==2 & var2==2 & var3==2
>>>> (d) var4=1 if var1|var2|var3 is having 0 and 1 only
>>>> (e) var4=2 if var1|var2|var3 is having 0 and 2 only
>>>> (f) var4 is 3 if var1|var2|var3 is 0,1 and 2
>>>>
>>>> gen var4 = 0 if max(var1, var2, var3) == 0            (a)
>>>> replace var4 = 1 if max(var1, var2, var3) == 1        (b), (d)
>>>> replace var4 = 2 if max(var1, var2, var3) == 2        (c), (e)
>>>> replace var3 = 3 if (var1 + var1 + var2) == 3         (f)
>>>>
>>>> Now it is evident that you can simplify
>>>>
>>>> gen var4 = max(var1, var2, var3)
>>>> replace var3 = 3 if (var1 + var1 + var2) == 3
>>>>
>>>> Nick
>>>> [email protected]
>>>>
>>>> prakash singh
>>>>
>>>> In my survey data, I have three categorical variable with 0, 1 and
>>>> 2 as
>>>> three category.
>>>> Now I want to make a variable using combination of these three
>>>> variables.
>>>>
>>>> The combination is such that generated variable var4 == 0 if
>>>> var1==0 & var2==0 & var3==0,
>>>> var4=1 if var1==1 & var2==1 & var3==1,
>>>> var4=2 if var1==2 & var2==2 & var3==2,
>>>> var4=1 if var1|var2|var3 is having 0 and 1 only
>>>> var4=2 if var1|var2|var3 is having 0 and 2 only
>>>> var4 is 3 if var1|var2|var3 is 0,1 and 2
>>>>
>>>> for exmple (see below)
>>>>
>>>> var1 var2 var3 var4
>>>> 0     0     0      0
>>>> 1    1     1       1
>>>> 2    2      2      2
>>>> 0    1     2       3
>>>> 0    1      1      1
>>>> 1    2      0      3
>>>>
>>>> I am using stata10.
>>>>

*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index