Ja ist es. Der einfachste Weg ist wahrscheinlich das tidyr
Paket zu verwenden. Hier ist der Einzeiler:
library(tidyr)
df <- fread("~/Downloads/Bike_Share_Stations.csv") # Read data
extract(df, Geom, into = c('Lat', 'Lon'), '\\((.*),(.*)\\)', conv = T)
Das letzte Argument ist ein regulärer Ausdruck mit Gruppenübereinstimmungen. Es ist ein einfaches Muster: Es beginnt mit einem Literal (
. Die innersten zwei Klammern (.*)
sind die zwei Koordinaten, die durch das Komma getrennt sind. Nur diese werden extrahiert. Das Muster endet mit dem entsprechenden Literal )
.
Hier ist eine Teilmenge der resultierenden Daten:
UID Site ID Last Edited Date Lat Lon
1: 1 SF-T24 S1 05/23/2016 12:00:00 AM +0000 37.7518243814 -122.426627114
2: 2 SF-G33 S1 05/23/2016 12:00:00 AM +0000 37.7935049482 -122.392846514
3: 3 SOMA-06A 05/23/2016 12:00:00 AM +0000 37.7897420277 -122.394678441
4: 4 SF-T22 S5 05/23/2016 12:00:00 AM +0000 37.7512809413 -122.431836215
5: 5 SF-R25 S4 05/23/2016 12:00:00 AM +0000 37.7567132725 -122.421038213
---
103: 103 Embr-E 05/23/2016 12:00:00 AM +0000 37.8047749378 -122.403247294
104: 104 SF-N26 S1 05/23/2016 12:00:00 AM +0000 37.7682271629 -122.420291015
105: 105 Market-11B 05/23/2016 12:00:00 AM +0000 37.7922638478 -122.397066071
106: 106 SF-O27 S2 05/23/2016 12:00:00 AM +0000 37.7671609432 -122.415485214
107: 107 SF-T23 S5 05/23/2016 12:00:00 AM +0000 37.7514609421 -122.429135213
Geben Sie bitte alle relevanten Informationen in Ihrer Frage. Ziehen Sie ein paar Zeilen der Quelle an und zeigen Sie, was Sie bisher versucht haben. Auch die Antwort auf Ihre Frage ist ja. Entferne Grad, konvertiere zu numerisch und voila. –