Ich habe einen Datenrahmen mit mehr als 10 Millionen Zeilen. Ich möchte den Abstand zwischen den lat-lon-Paaren zählen und sie zu einer nem Spalte hinzufügen. Ich habe versucht, das Skript auszuführen (siehe unten), aber es dauert zu lange (mehr als 5 Stunden). Jeder Tipp, wie kann ich die Geschwindigkeit dieses Prozesses steigern? Ich benutze das Geosphären-Paket, um den Abstand zwischen den Lat-lon-Paaren zu zählen.Zähldistanz dauert zu lange
for (i in seq_len(nrow(dm_kekk)))
{
dm_kekk$dist[i]<-distm (c(dm_kekk$lon[i], dm_kekk$lat[i]),
c(dm_kekk$lon_ok[i], dm_kekk$lat_ok[i]),
fun = distHaversine)
}
Danke !!!
Thx für die Antwort verwenden. Der dplyr-Weg gibt einen Fehler, der richtige Code sieht also so aus: 'muate (dist = distm (cbind (lon, lat), cbind (lon_ok, lat_ok), fun = distHaversine))'. – deaux
HI @deaux, könnten Sie bitte die Frage als richtig markieren, wenn die Lösung funktioniert? Haben Sie auch Benchmarking durchgeführt, um herauszufinden, welche Lösung optimal ist? –
Hallo @ Hanjo Jo'burg Odendaal! Der Weg ist viel schneller als der parallele Weg. Aber die Syntax von distm war falsch. Der richtige Code sieht folgendermaßen aus: 'mutate (dist = distm (cbind (lon, lat), cbind (lon_ok, lat_ok), fun = distHaversine))'. – deaux