Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: How to attach a string to a numeric variable as its value lable


From   "Friedrich Huebler" <[email protected]>
To   [email protected]
Subject   Re: st: How to attach a string to a numeric variable as its value lable
Date   Wed, 26 Mar 2008 01:38:50 -0400

Xiangping Jia,

You asked "Does Stata have a simple way for such a function?" Was my
solution not simple enough?

Friedrich

On Tue, Mar 25, 2008 at 7:15 PM, Jia Xiangping <[email protected]> wrote:
> Thanks Friedrich. As you said, the new numeric variable has the values
>  1, 2, 3, and so on, but alphabetically with x. -replace- is a wrong
>  way; the numeric is the same, but the labels are changed.  Does stata
>  have a simple way for such a function?
>
>  Thanks for the caution, Margaret. All the variables have no some
>  extraneous blanks.
>
>
>
>  encode x, gen(new)
>  list new y x, nolabel sep(0)
>  replace new=y
>  list new y x, sep(0)
>
>  new         y                    x       new[replaced]  y              x
>  1       27      BUGIRI  SOROTI  27      BUGIRI
>  1       27      BUGIRI  SOROTI  27      BUGIRI
>  4       28      IGANGA  TORORO  28      IGANGA
>  4       28      IGANGA  TORORO  28      IGANGA
>  4       28      IGANGA  TORORO  28      IGANGA
>  16      29      MAYUGE  WAKISO  29      MAYUGE
>  16      29      MAYUGE  WAKISO  29      MAYUGE
>  16      29      MAYUGE  WAKISO  29      MAYUGE
>  16      29      MAYUGE  WAKISO  29      MAYUGE
>  16      29      MAYUGE  WAKISO  29      MAYUGE
>  16      29      MAYUGE  WAKISO  29      MAYUGE
>  5       30      JINJA   30      30      JINJA
>  5       30      JINJA   30      30      JINJA
>  5       30      JINJA   30      30      JINJA
>  8       31      KAMULI  31      31      KAMULI
>  8       31      KAMULI  31      31      KAMULI
>  8       31      KAMULI  31      31      KAMULI
>  8       31      KAMULI  31      31      KAMULI
>  23      32      PALLISA 32      32      PALLISA
>  29      33      WAKISO  33      33      WAKISO
>  29      33      WAKISO  33      33      WAKISO
>  19      34      MPIGI   34      34      MPIGI
>  19      34      MPIGI   34      34      MPIGI
>  21      35      MUKONO  35      35      MUKONO
>  21      35      MUKONO  35      35      MUKONO
>  21      35      MUKONO  35      35      MUKONO
>  11      36      KAYUNGA 36      36      KAYUNGA
>  2       37      BUSHENYI        37      37      BUSHENYI
>  25      38      RUKUNGIRI       38      38      RUKUNGIRI
>  9       39      KAPCHORWA       39      39      KAPCHORWA
>  9       39      KAPCHORWA       39      39      KAPCHORWA
>  9       39      KAPCHORWA       39      39      KAPCHORWA
>  27      40      SOROTI  40      40      SOROTI
>  13      40      KUMI    40      40      KUMI
>
>
>
>
>
>
>  On 3/25/08, Friedrich Huebler <[email protected]> wrote:
>  > Xiangping Jia,
>  >
>  > When you -encode- a string variable, the new numeric variable has the
>  > values 1, 2, 3, and so on. These values are probably not the same as
>  > those in the variable y. In the example in your message, the label
>  > "RAKAI" is assigned to the value 1 and not the value 21 when you
>  > -replace newx=y-.
>  >
>  > Below is an inefficient solution that creates correct value labels.
>  > The solution is inefficient because it loops over all observations.
>  >
>  > . count
>  > . local n = r(N)
>  > . forvalues i = 1/`n' {
>  >  local xi = x[`i']
>  >  local yi = y[`i']
>  >  lab def ylab `yi' "`xi'", modify
>  >  }
>  > . lab val y ylab
>  > . lab list ylab
>  > ylab:
>  >          21 RAKAI
>  >          22 MASAKA
>  >          23 MBALE
>  >          24 SIRONKO
>  >          25 TORORO
>  >          26 BUSIA
>  >
>  > Friedrich
>  >
>  > On Tue, Mar 25, 2008 at 4:32 PM, Jia Xiangping <[email protected]> wrote:
>  > > Dear all,
>  > >
>  > >  There are two variables, one string and one numeric. The meaning of x
>  > >  is supposed to be attached to y as its value label.
>  > >
>  > >  x                 y
>  > >  RAKAI         21
>  > >  RAKAI         21
>  > >  RAKAI         21
>  > >  MASAKA     22
>  > >  MASAKA     22
>  > >  MASAKA     22
>  > >  MASAKA     22
>  > >  MBALE         23
>  > >  MBALE         23
>  > >  MBALE         23
>  > >  SIRONKO      24
>  > >  SIRONKO      24
>  > >  TORORO       25
>  > >  TORORO       25
>  > >  BUSIA           26
>  > >
>  > >
>  > >  The simple way I did was:
>  > >  . encode x, gen(newx)
>  > >  . replace newx=y
>  > >  . list newx y
>  > >
>  > >  Then it is found some are not replaced. I must read a solution
>  > >  somewhere, but I can not recall it. Could someone give a quick
>  > >  solution? Thanks.
>  > >
>  > >                   newx              x
>  > >   65. |      TORORO        IGANGA |
>  > >   66. |      WAKISO        MAYUGE |
>  > >   67. |      WAKISO        MAYUGE |
>  > >   68. |      WAKISO        MAYUGE |
>  > >   69. |      WAKISO        MAYUGE |
>  > >   70. |      WAKISO        MAYUGE |
>  > >   71. |      WAKISO        MAYUGE |
>  > >   72. |          30         JINJA |
>  > >   73. |          30         JINJA |
>  > >   74. |          30         JINJA |
>  > >   75. |          31        KAMULI |
>  > >   76. |          31        KAMULI |
>  > >
>  > >
>  > >  ps. Stata 10. Windows XP.
>  > >
>  > >
>  > >
>  > >  --
>  > >  Xiangping Jia
>
>
>
>  --
>  Xiangping Jia
*
*   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