[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]
Re: st: substring help
Heather Gold wrote:
> Dear Fellow Listers -
> Someone has probably figured this out previously, but I can't seem to find
> exactly what I need in the archives or help...
> I have a string variable with county and state names merged as one string
> 15 characters long. I need to get rid of the trailing state name.
> For example, I have:
> Genesee NY
> Bronx NY
> Queens NY
> And I want to have only:
> I tried
> gen cnty=substr(cntyname, -2,2)
> But that does the "opposite" of what I want, ie, returns "NY".
> Because the county name varies in length, I can't just do a substring of a
> specific length, starting from the beginning of the variable.
> Shouldn't there be an obvious solution? I can't find it.
Here is one way:
. gen length = length(cntryname)
. gen cntry = substr(cntryname,1,length-3)
This works if Your states has two letters.
Another way woult be:
. gen blankpos = strpos(cntryname," ")
. gen cntry = substr(cntryname,1,blankpos)
which works if the county-names themselves do not contain blanks (except as
separator for the traling state name.
This is Stata 9 syntax. Substitute strpos with index() for older Stata
+49 (030) 25491-361
* For searches and help try: