Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.

# Re: st: Need help with working across variables

 From Alison Connor To statalist@hsphsun2.harvard.edu Subject Re: st: Need help with working across variables Date Sun, 10 Feb 2013 11:46:25 +0545

```Hi Michael,

Sorry - you are right. In the code that I wrote, you would need to
use: egen x`i'=rall(var1 var2 var3 var4), c(@==`i' | @==.)

Cory's code works, too.

To do what you are asking below, you would do something similar as
Cory's code from before.

egen xmax=max(var2), by(var1)
egen xmin=min(var2), by(var1)

gen same=0 if xmax!=xmin
replace same=1 if xmax==xmin

~Alison

On Sun, Feb 10, 2013 at 11:38 AM, Michael Stewart
<michaelstewartresearch@gmail.com> wrote:
> Dear Cory,
> This works,
> Thanks a lot
> on the same lines have another question
>
> id   var
> 1    2
> 1    2
> 1    3
> 1    2
> 2    1
> 2    1
> 2    1
> 2    .
> 2    1
> 3    1
> 3   2
> 3   4
>
> How do I check of all(nonmissing) observations for a particular id are the same
> thanks
> Mike
>
> On Sun, Feb 10, 2013 at 12:34 AM, Cory Smith <corybsmith@gmail.com> wrote:
>> Too complicated in my opinion.
>>
>> gen x = 0
>>
>> egen Vmin = rowmin(var1 - var4)
>> egen Vmax = rowmax(var1 - var4)
>>
>> replace x = 1 if Vmin == 1 & Vmax == 1 & Vmin != .
>> replace x = 2 if Vmin == 2 & Vmax == 2 & Vmin != .
>>
>> Actually, some of the terms in the above are unnecessary but I kept
>> them in for clarity.
>>
>> On Sun, Feb 10, 2013 at 12:27 AM, Alison Connor <alison.connor@gmail.com> wrote:
>>> Hi Michael,
>>>
>>> There might be a more efficient way to do it, but if you have egenmore
>>> you can do:
>>>
>>>  egen x=rall(var1 var2 var3 var4), c(@==1)
>>>
>>> This will be 1 if all non-missing variables are 1, and 0 otherwise. If
>>> you only have two values for your variables, then you can run this
>>> command again, and then merge the two into a third variable:
>>>
>>>  egen x1=rall(var1 var2 var3 var4), c(@==1)
>>>  egen x2=rall(var1 var2 var3 var4), c(@==2)
>>>
>>> gen x=0
>>> replace x=1 if x1==1
>>> replace x=2 if x2==1
>>>
>>> If you are going to do this for multiple values, then you can create a loop:
>>>
>>> gen x=0
>>> forvalues i=1/2 {
>>>    egen x`i'=rall(var1 var2 var3 var4), c(@==`i')
>>>   replace x=`i' if x`i'==1
>>>   drop x`i'
>>>  }
>>>
>>> ~Alison
>>>
>>>
>>> On Sun, Feb 10, 2013 at 10:41 AM, Michael Stewart
>>> <michaelstewartresearch@gmail.com> wrote:
>>>>
>>>> HI ,
>>>> Here is my data format and my question:
>>>> id      var1    var2    var3    var4
>>>> 1       1       1       1       .
>>>> 2       1       1       1       1
>>>> 3       1       2       1       .
>>>> 4       2       2       2       2
>>>> 5       1       1       1       1
>>>> 6       1       2       .       .
>>>> 7       2       1       2       .
>>>>
>>>> I am trying to generate a new variable x =1 if all non missings values
>>>> for the variables(per observation) are equal to 1 and x =2 if all non
>>>> missings values for the variables(per observation) are equal to 2. I
>>>> tried to do foreach loop like
>>>>
>>>> gen x=0
>>>> foreach x in var1 var2 var3 var4{
>>>> replace x=1 if `x'=1
>>>> }
>>>> but it doesnt seem to do the trick
>>>>
>>>> I am specifically interested in to change x =1 if all nonmissign
>>>> values for an observation are equal to one
>>>> For example: I would like to replace x=1 for id=1 but not for id 3
>>>> Similarly, I would like to replace x=2 if all nom missing values for
>>>> an observation are equal to two.
>>>>
>>>> --
>>>> Thank you ,
>>>> Yours Sincerely,
>>>> Mike.
>>>> *
>>>> *   For searches and help try:
>>>> *   http://www.stata.com/help.cgi?search
>>>> *   http://www.stata.com/support/faqs/resources/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/faqs/resources/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/faqs/resources/statalist-faq/
>> *   http://www.ats.ucla.edu/stat/stata/
>
>
>
> --
> Thank you ,
> Yours Sincerely,
> Mike.
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/faqs/resources/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/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
```