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.

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

From |
"Nick Cox" <n.j.cox@durham.ac.uk> |

To |
<statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: RE: RE: left right string |

Date |
Wed, 19 May 2010 17:40:05 +0100 |

I commended your answers, so why look for critique? I would have recommended what you did given the initial question, namely to use -split-. But Tyler made clear eventually that he wants to go from numeric variable to numeric variables. That being so, string manipulations are not needed. End of my story. The real question is "to go from a existing numeric variable with value labels to new numeric variables based on those labels", as said. "There's another way to do it" is always fair comment. Nick n.j.cox@durham.ac.uk Martin Weiss " Martin gave good answers to the original question, but from this end of the thread it is clear that the real question is different." I do not understand this critique. I gave answers to the original question _and_ the modification requested in http://www.stata.com/statalist/archive/2010-05/msg01039.html. If anything, my solution is automatic while Nick`s requires examination of the -label-s. Am I missing anything here? What is the "real question", btw? Nick Cox Martin gave good answers to the original question, but from this end of the thread it is clear that the real question is different. Tyler wants to go from a existing numeric variable with value labels to new numeric variables based on those labels. If that is it, then you could just look at the labels and go (e.g.) gen age_min = cond(hhh_age == 1, 15, cond(hhh_age == 2, 20, cond(hhh_age == 3, 25))) OR gen age_min = 15 * (hhh_age == 1) + 20 * (hhh_age == 2) + 25 * (hhh_age == 3) OR gen age_min = 15 if hh_age == 1 replace age_min = 20 if hh_age == 2 replace age_min = 25 if hh_age == 3 This is not an exhaustive list, no doubt. My point is just that you can look at the list of values and value labels and work out -generate- and -replace- code. Tyler's real example is no doubt a bit more complicated but the principle should apply. Nick n.j.cox@durham.ac.uk Martin Weiss " I just realized my ranges are labels" No big deal, just -decode- the thing beforehand: *********** clear* set obs 3 gen byte hhh_age=_n la def ages 1 "15-19" 2 "20-24" 3 "25-39" la val hhh_age ages decode hhh_age, gen(newhhh_age) split newhhh_age, gen(age) parse(-) destring rename age1 age_min rename age2 age_max list, noo *********** Tyler Frazier I just realized my ranges are labels On Tue, May 18, 2010 at 11:08 PM, Martin Weiss <martin.weiss1@gmx.de> wrote: > > <> > > > You can generate the new variables and -destring- (which I assume you also > want) in one fell swoop: > > > *********** > clear* > > inp str5 hhh_age > 15-19 > 20-24 > 25-39 > end > > split hhh_age, gen(age) parse(-) destring > rename age1 age_min > rename age2 age_max > > list, noo > *********** Martin Weiss > Have you had a look at -split-? Tyler Frazier > simple question, I hope -- I have a variable which is a range of ages, > for example the variable name is hhh_age and the quantities are > 15-19, 20-24, 25-39 etc... > > and I want to generate a new variable (age_min) that returns the left > two characters from hhh_age , and another variable that generates the > right two -- (age_max) > > I searched but couldnt find it, seems like a very simple thing, but > cant figure it out. > * * 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/ * * 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/ * * 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/

**References**:**st: left right string***From:*Tyler Frazier <tyfrazier@gmail.com>

**Re: st: RE: RE: left right string***From:*Tyler Frazier <tyfrazier@gmail.com>

**RE: st: RE: RE: left right string***From:*"Martin Weiss" <martin.weiss1@gmx.de>

**RE: st: RE: RE: left right string***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

**AW: st: RE: RE: left right string***From:*"Martin Weiss" <martin.weiss1@gmx.de>

- Prev by Date:
**AW: st: RE: RE: left right string** - Next by Date:
**Re: st: AW: Artmenu fails to load in Stata 11** - Previous by thread:
**AW: st: RE: RE: left right string** - Next by thread:
**st: observations differ with lrtest because of interaction terms** - Index(es):