Sayer, Bryan
>
> Or find the maximum value of the numeric variable (so that
> you know the
> number of characters), generate a string version, remove
> the zero, and
> convert back to a numeric. Say the maximum is 9999999
> (seven digits). I
> don't do this enough in Stata to know the exact commands,
> but in SAS I would
> do:
>
> newnumvar =
> input(substr(put(oldnumvar,z7.0),1,4)||substr(put(oldnumvar,
> z7.0),6,2),f6.0)
>
> Which is putting the old numeric variable zero filled to
> the left in a
> string format of length 7, concatenating the first 4
> characters with the
> last two, and then inputting the concatenated version into
> a new numeric
> variable. As Nick says, this REQUIRES that the unwanted
> zero appears in the
> third from the right position.
>
> I'm sure the equivalent is possible in Stata, I just don't
> know how to put a
> numeric into a string with zero fill.
Zero fill is unnecessary, even this route.
The last two characters are
substr(string(myvar),-2,2)
The first substring wanted is
substr(string(myvar),1,length(string(myvar))-3)
The whole is thus
substr(string(myvar),-2,2) +
substr(string(myvar),1,length(string(myvar))-3)
and the numeric equivalent is
real(substr(string(myvar),-2,2) +
substr(string(myvar),1,length(string(myvar))-3))
Not tested.
Nick
n.j.cox@durham.ac.uk
*
* 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/