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]
st: RE: RE: RE: RE: parsing degree minute second
From
"Ben Hoen" <[email protected]>
To
<[email protected]>
Subject
st: RE: RE: RE: RE: parsing degree minute second
Date
Tue, 31 Jan 2012 15:44:41 -0500
Is this an update to the 2002 article "Speaking Stata: On getting functions
to do the work"?
I think getting a subscription to the journal would be fruitful. I will
have to put a req in for that.
Ben Hoen
LBNL
Office: 845-758-1896
Cell: 718-812-7589
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Nick Cox
Sent: Tuesday, January 31, 2012 3:13 PM
To: '[email protected]'
Subject: st: RE: RE: RE: parsing degree minute second
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
[email protected]
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,
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....)
Nick
[email protected]
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/
*
* 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/