Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: using regex
From
Rijo John <[email protected]>
To
[email protected]
Subject
Re: st: using regex
Date
Fri, 3 Dec 2010 08:56:12 -0500
Thank you statalist. Allmost all the solutions you gave worked for me.
Really appreciate your help.
Thanks,
On Fri, Dec 3, 2010 at 7:34 AM, Steven Samuels <[email protected]> wrote:
>
> Actually, a better one-line regex solution is:
>
> gen fips =real(regexs(1)) if regexm(code,"^([0-9][0-9]?)[0-9][0-9][0-9]$")
>
> The previous version would return a 1 or 2 digit value for incorrectly formed codes such as "123456", "A1234", "1234B"
>
>
> Steve
>
>
> On Dec 2, 2010, at 5:58 PM, Steven Samuels wrote:
>
>
> The regular expression solution is:
>
> gen fips = real(regexs(1)) if regexm(x,"([0-9][0-9]?)[0-9][0-9][0-9]")
>
>
> Steve
>
> Steven J. Samuels
> [email protected]
> 18 Cantine's Island
> Saugerties NY 12477
> USA
> Voice: 845-246-0774
> Fax: 206-202-4783
>
>
>
> On Dec 2, 2010, at 5:22 PM, Rijo John wrote:
>
> Hi statlist,
>
> I have a string variable (code) with state and county codes merged.
> For example, the observation 12001 indicate that the first 2 digits
> are state codes and the remaining 3 digits are county codes. I want to
> create a new variable (fips) only with the state code. I use the
> following
>
> gen fips = regexs(0) if(regexm(code, "[0-9][0-9]"))
>
> and it works fine when the code contains 5 digits. But if a particular
> state code is only 1 digit and thereby the string "code" only has a
> total of 4 digits the trick above does not work. In such cases I want
> to only extract the first digit.
> Can someone help?
>
> Thanks.
> Rijo.
> *
*
* 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/