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 <>
Subject   Re: st: Constructe a string variable
Date   Wed, 16 Apr 2003 23:04:17 -0700 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()

   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:

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