The proposed solution works well if every observation is exactly ten
``characters" (digits) long, or if you want the 5th and 6th digit from the
*end* of the number, but if you have a variable whose length varies and you
really want the 5th and 6th digit, you will go wrong:
oldvar newvar
1234567 23
1234567890 56
So, assuming you really want the 5th and 6th digit, try:
. gen byte newvar = real(substr(string(oldvar,"%10.0f"),5,2))
oldvar newvar
1234567 56
1234567890 56
-----Original Message-----
From: David Kantor [mailto:[email protected]]
Sent: Tuesday, August 31, 2004 6:58 PM
To: [email protected]
Subject: Re: st: isolating characters in the middle of a long number
Try this (untested):
. gen byte newvar = mod(int(oldvar/10000), 100)
I hope this helps.
--David
> > >I have a variable that is a number of about 10 characters, and I
> > need to
> > >create a variable that is the 5th and 6th character of the longer
> > >variable. Does anyone have any suggestions on how I could do this?
> > >
*
* 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/