2017-05-24 2 views
1

Ersetzen habe ich eine Zeichenfolge, die lat, long-Koordinaten, die wie folgt dargestellt wird:sekündlich Komma in der Zeichenfolge in R

30.538358,-96.692008,30.538602,-96.691741,30.539737,-96.690322 

I sekündlich comma mit einem |

30.538358,-96.692008|30.538602,-96.691741|30.539737,-96.690322 
ersetzen müssen

Ich brauche das, weil der Google MAPS-Elevation-Service dieses Format benötigt.

+0

Und was haben Sie versucht, brauchen? – Rahul

Antwort

4

Sie können dies mit gsub und einem regulären Ausdruck tun.

string = "30.538358,-96.692008,30.538602,-96.691741,30.539737,-96.690322" 
gsub("([^,]+,[^,]+),", "\\1|", string) 
"30.538358,-96.692008|30.538602,-96.691741|30.539737,-96.690322" 
+0

Vielen Dank für den richtigen Ausdruck. –

0

In R können Sie die google_elevation() Funktion von meinem googleway Paket verwenden

df <- read.table(text = "lat,lon 
       30.538358,-96.692008 
       30.538602,-96.691741 
       30.539737,-96.690322",header=T,sep = ",") 

google_elevation(df_locations = df, key = apiKey) 
# $results 
# elevation location.lat location.lng resolution 
# 1 101.8991  30.53836 -96.69201 9.543952 
# 2 102.0905  30.53860 -96.69174 9.543952 
# 3 101.2652  30.53974 -96.69032 9.543952 
# 
# $status 
# [1] "OK" 

Google Elevation API Oder anrufen, wenn Sie mehr Punkte haben, ist es besser, sie in eine Polylinie zu codieren, so dass Sie don‘ t das API-Abfrage-Limit as found here erreichen.

Um diesen Ansatz verwenden Sie die Entwicklungsversion des Pakets

## devtools::install_github("SymbolixAU/googleway") 
## library(googleway) 
pl <- encode_pl(lat = df$lat, lon = df$lon) 
pl 
# "[email protected]@aF{G" 
google_elevation(polyline = pl, key = apiKey) 
# $results 
# elevation location.lat location.lng resolution 
# 1 101.9124  30.53835 -96.69200 9.543952 
# 2 102.0864  30.53860 -96.69174 9.543952 
# 3 101.1588  30.53973 -96.69032 9.543952 
# 
# $status 
# [1] "OK" 
+0

Danke, ich wusste nichts über das Google-Paket. Das wird mir sicherlich helfen. –

Verwandte Themen