On 10/23/2013 08:05 PM, Peter Maclean wrote:
I have this kind od data
x<- read.table(text="
 Log    lat
3025.264 901.331
3039.237 810.811
3137.760 806.040
3141.190 806.557
3141.229 806.622
3138.891 806.281",
               header=TRUE,
stringsAsFactors=FALSE)
I what to insert “:� after every first
two numbers in Lon variable and after
every first number in lat variable.
The variables should end with “E� for
Lon and “S� for the Lon variable.  The
results should look like:
Lon                     Lat
30:25:264EÂ Â Â Â Â Â 9:01:331S
30:39:237EÂ Â Â Â Â Â 8:10:811S
31:37:760EÂ Â Â Â Â Â Â 8:06:040S
31:41:190EÂ Â Â Â Â Â 8:06:557S
31:41:229EÂ Â Â Â Â Â 8:06:622S
31:38:891EÂ Â Â Â Â Â 8:06:281S
I am using gmt package for
geocodes conversion.
Hi Peter,
Kind of messy, but:
insert.colons.lon<-function(x) {
newx<-paste(x[1],x[2],":",x[3],x[4],":",x[6],sep="")
if(length(x) > 6) newx<-paste(newx,x[7],sep="")
if(length(x) > 7) newx<-paste(newx,x[8],sep="")
newx<-paste(newx,"E",sep="")
return(newx)
}
insert.colons.lat<-function(x) {
newx<-paste(x[1],":",x[2],x[3],":",x[5],sep="")
if(length(x) > 5) newx<-paste(newx,x[6],sep="")
if(length(x) > 6) newx<-paste(newx,x[7],sep="")
newx<-paste(newx,"S",sep="")
return(newx)
}
x$lon<-unlist(sapply(strsplit(as.character(x$lon),insert.colons.lon)))
x$lat<-unlist(sapply(strsplit(as.character(x$lat),insert.colons.lat)))
Jim
______________________________________________
[email protected] 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.