Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: multiple )))brackets, is there a more efficient way?


From   "Annelies Vos" <[email protected]>
To   [email protected]
Subject   Re: st: multiple )))brackets, is there a more efficient way?
Date   Tue, 25 May 2004 09:47:09 +0200 (MEST)

Thanks Ulrich,
I liked the cond () solution because I didn't know this one...
This seems much more efficient.
Annelies
> I don't know why you like the solution with cond(), but I prefer a
> solution
> with -inlist()- or -inrange()- for tasks like this this. With inlist()
> your
> your code-snippet might be coded like this:
>
> gen byte origin = 7 if nation == 3
> replace origin = 10 if inlist(nation,8,12,69,139,141)
> replace origin = 8 if inlist(nation,14,82)
> ...
>
> Others might propose a solution with -recode- but thats a matter of taste.
> In any case: see -help inlist- or -help recode- for more.
>
> Annelies Vos wrote:
>> Dear all,
>> in the FAQs I found the following very useful recommendation:
>> instead of:
>>            . generate byte a = 1 if y <= 20
>>            . replace a = 2 if y > 20 &  y <= 30
>>            . replace a = 3 if y > 30 & y <= 40
>>            . replace a = 4 if y > 40 & y <.
>>
>> do the following:
>>
>>            . #delim ;
>>            . generate byte a =
>>              cond(y<=20, 1,
>>              cond(y<=30, 2,
>>              cond(y<=40, 3,
>>              cond(y<., 4,
>>                . ))));
>>
>> However, the variable I want to use it for (nationality) has many
>> values (every country in the world), which should be recoded into
>> countrygroups. I don't really like the idea of having to count the
>> number of "opening brackets": "(" , to know with how many "closing
>> brackets": ")" I should end. Is there any easier solution for this?
>>
>> to explain a piece of my syntax:
>> > #delim;
>> > generate byte origin =
>> > cond(natio==3, 7,
>> > cond(natio==8, 10,
>> > cond(natio==12, 10,
>> > cond(natio==14, 8,
>> > cond(natio==28, -9,
>> > cond(natio==54, 6,
>> > cond(natio==69, 10,
>> > cond(natio==82, 8,
>> > cond(natio==139, 10,
>> > cond(natio==141, 10,
>>
>> ...etcetera
>>
>> ...which I would like to end on another way than:
>> > . ))))))))))
>
> many regards
> uli
>
>
> --
> [email protected]
> +49 (030) 25491-361
>
>
> *
> *   For searches and help try:
> *   http://www.stata.com/support/faqs/res/findit.html
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



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