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

Re: st: Constructe a string variable


From   Gary Longton <glongton@fhcrc.org>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Constructe a string variable
Date   Wed, 16 Apr 2003 23:04:17 -0700

jtsheu@bu.edu wrote:

> Suppose I have a string variable with 3 position on each observations.
> Each of these observations contains some values range from 1-999.
> i.e.:
>        X
> obs1   1
> obs2   12
> obs3   123
> (though all entries are numerical, but variable X is of string format)
> 
> My purpose is to reconstruct this variable to be the following formate:
>        X
> obs1   001
> obs2   023
> obs3   345
> 
> i.e. I want to replace the left postition for each observation with "0" if
> nothing here.

A somewhat less complicated solution than those that have been proposed:

If want to end up, as you started, with a string format variable, this
can be achieved in one line by combining the string(n,"%fmt") and real()
functions:

   replace x = string(real(x),"%03.0f")

see on-line help for string functions (whelp strfun) and for display
formats (whelp format)

If, on the other hand, you prefer to work with this as a numeric
variable but wish to display with leading zeros, then just convert to a
real and format to display accordingly (i.e identical to the above
solution, but eliminate the outer string() function:

gen x2 = real(x)
format x2 %03.0f

- Gary
*
*   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index