On Mon, Aug 16, 2010 at 7:27 PM, Sadz A <sadz_a1...@yahoo.co.uk> wrote:
> Hi All,
>
> I have location data set up as degrees: minutes: seconds (for example,
> 122:45:45) I need to get this data into decimal degree form (122.7625).
>
> I know that I need to use the formula
>
> Decimal degrees = Degrees + (Minutes/60) + (Seconds/3600)
>
> Does anyone know how I can get R to do this?
> The original data is all in one column (called 'lat') and the degrees, mins 
> and
> secs are divided by ':'
> There are some values that are negative (eg -69:38:27)
> I have R version 2.10.1 on a windows vista computer.
>
> I could do it manually but I have like 20,000 entries and would really like a
> little code to automate the conversion.
>
> I have tried Microsoft Access and Excel, but because the data is not stored in
> 3 columns I cannot get it to work, I figured R was my best option but I cant 
> get
> it to work. It should be really simple but I'm new to R so would
> really appreciate help.
>
>  Thank you for reading my plea,
> Any and all help is greatly appreciated,
> sadz

Try this.  strapply matches the indicated regular expression to x
extracting the matches to the parenthesized portions and passing those
matches to separate arguments of f whose output is returned.  Your
formula has been modified slightly here to handle negative numbers.

> library(gsubfn)
> x <- c("122:45:45", "-69:38:27")
> f <- function(d, m, s, dd = as.numeric(d), mm = as.numeric(m), ss = 
> as.numeric(s)) sign(dd) * (abs(dd) + mm / 60 + ss / 3600)
> strapply(x, "(.*):(.*):(.*)", f, simplify = TRUE)
[1] 122.76250 -69.64083

There is more info on strapply and the gsubfn package at
http://gsubfn.googlecode.com

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to