Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# st: RE: RE: RE: parsing degree minute second

 From Nick Cox To "'statalist@hsphsun2.harvard.edu'" Subject st: RE: RE: RE: parsing degree minute second Date Tue, 31 Jan 2012 20:13:04 +0000

```If you care to, see

SJ-11-3 dm0058  . . . . . . . . Speaking Stata: Fun and fluency with functions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  N. J. Cox
Q3/11   SJ 11(3):460--471                                (no commands)
a tour of easily missed or underestimated Stata functions

for a terse tips and tricks tutorial on functions.

(-moss- is worth a look too.)

Nick
n.j.cox@durham.ac.uk

Ben Hoen

Thanks Nick!  Using word(..) makes sense and is considerably more efficient!

Nick Cox

My principle and practice with string problems is to reach for regex
machinery if and only if simpler tools won't suffice. (When that's not true,

Thus here the elements you want are the first, third, fifth words of
-latitude- to be extracted with -word(latitude, 1)- ...

I infer that all your data are in the Northern Hemisphere but if not then
-word(latitude, -1)- extracts "N" or "S".

Alternatively, for a regex convenience tool, see -moss- (SSC) and

. moss lat, regex match(([0-9.]+))

(A rolling -moss- gathers all strings....)

Nick
n.j.cox@durham.ac.uk

Ben Hoen

I am trying to extract portions of a string "latitude" (in degree minute
seconds) so that I can convert it to decimal degrees.  I have not been able
to get the extraction to work; the ".list" returns null sets for all the
latdd* variables.  Can anyone see my error?

clear all
input str20 latitude
"39 - 46 - 21.02  N"
"39 - 44 - 58.66  N"
"118 - 06 - 27.95  N"
end
gen latdd1=regexs(1) if regexm(latitude, "(([0-9]+)[\ - ]([0-9]+)[\ -
]([0-9]+[\.][0-9]+))")
gen latdd2=regexs(2) if regexm(latitude, "(([0-9]+)[\ - ]([0-9]+)[\ -
]([0-9]+[\.][0-9]+))")
gen latdd3=regexs(3) if regexm(latitude, "(([0-9]+)[\ - ]([0-9]+)[\ -
]([0-9]+[\.][0-9]+))")
list

*
*   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/
```