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]

st: Re: generate group variables


From   "Joseph Coveney" <[email protected]>
To   <[email protected]>
Subject   st: Re: generate group variables
Date   Sun, 16 Feb 2014 12:51:36 +0900

Rochelle Zhang wrote:

I would like to generate 36 group code based on technological
classification code. for example,

for technological classification code= 8,19,71, 127, 442, 504, it will
be coded as groupcode=11,

for technological classification code= 106, 118, 401, 427, it will be
coded as groupcode=12,

.... etc


I just switched from sas programming to stata, hence, not very good at
stata coding.

could you shed light one this?

--------------------------------------------------------------------------------

There are a few ways of doing this.  The one shown below uses the Stata function -inlist()- and a loop that traverses a series of strings containing the lists of classification codes that you want to group.  A separate local macro, -group_code-, is initialized before the loop, and then incremented during each pass through the loop and used to assign values to the -group_code- dataset variable.

There might also be a user-written command that does the same thing, but I cannot remember any off the top of my head.

Joseph Coveney
 
. input int classification_code

     classi~e
  1. 8
  2. 19
  3. 71
  4. 127
  5. 442
  6. 504
  7. 106
  8. 118
  9. 401
 10. 427
 11. end

. 
. generate byte group_code = 0

. 
. local group_code 11

. foreach classification_group in ///
>     "8, 19, 71, 127, 442, 504" ///
>     "106, 118, 401, 427" {
  2. 
.     replace group_code = `group_code' ///
>         if inlist(classification_code, `classification_group')
  3.     local ++group_code
  4. 
. }
(6 real changes made)
(4 real changes made)

. 
. list , noobs sepby(group_code) abbreviate(30)

  +----------------------------------+
  | classification_code   group_code |
  |----------------------------------|
  |                   8           11 |
  |                  19           11 |
  |                  71           11 |
  |                 127           11 |
  |                 442           11 |
  |                 504           11 |
  |----------------------------------|
  |                 106           12 |
  |                 118           12 |
  |                 401           12 |
  |                 427           12 |
  +----------------------------------+

. 
. exit

end of do-file


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


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