Bookmark and Share

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: parsing degree minute second

From   Nick Cox <>
To   "''" <>
Subject   st: RE: parsing degree minute second
Date   Tue, 31 Jan 2012 18:32:10 +0000

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, they can be very helpful.) 

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....) 


-----Original Message-----
From: [] On Behalf Of Ben Hoen
Sent: 31 January 2012 18:05
Subject: st: parsing degree minute second

Hello statalisters,

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"
gen latdd1=regexs(1) if regexm(latitude, "(([0-9]+)[\ - ]([0-9]+)[\ -
gen latdd2=regexs(2) if regexm(latitude, "(([0-9]+)[\ - ]([0-9]+)[\ -
gen latdd3=regexs(3) if regexm(latitude, "(([0-9]+)[\ - ]([0-9]+)[\ -

Thank you in advance for any help you can offer.


Ben Hoen
Principal Research Associate
Lawrence Berkeley National Laboratory
Office: 845-758-1896
Cell: 718-812-7589

*   For searches and help try:

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index