Ich möchte eine Funktion ausführen, die den Abstand zwischen den beiden Punkten angibt. Ich möchte die Entfernung zwischen allen Punkten berechnen, wie mache ich das. Ich verstehe, dass es mit if
oder for
getan werden kann, aber ich bin nicht großartig mit diesen verwenden.Entfernung zwischen einer Matrix von Punkten, einfache if & for's
Meine Funktion ist:
Distance<- function(x,y) {
round(sqrt(sum((x - y)^2)),3)
}
Ich habe 34 Punkte in Rechts- und Hochwert oder x & y der oben funtion:
easting=rbind(609027, 609282, 609501,609497,609405,609704,609718,610277,610530,610573,609875,608947,609865,611105,611169,611243,611388,611598,611339,611310,611212,611150,611358,611626,611763,611887,612043,612134,612160,612539,612857,613062,613154,613303)
northing=rbind(1534293,1534470,1534630,1534848,1534027,1535054,1535315,1535583,1535717,1536254,1536351,1536700,1536746,1536762,1537003,1537261,1537489,1537685,1537838,1538103,1538500,1538812,1539217,1539342,1539627,1539842,1540027,1540357,1540628,1540911,1541623,1541896,1542117,1542494)
Wenn coords<-as.data.frame(easting,northing)
meine Daten-Set ist, dann möchte ich berechnen der Abstand zwischen coords[i,]
und coords[j,]
. Dabei sind i
, j
die Zeilen im Dataset.
Dank
Das gibt mir 561 Werte, wenn ich alle 34 Zeilen verwende. Ich sollte 1156 bekommen. – SamAct
Aus jeder Zeile können Sie die Entfernung zu 33 anderen Zeilen messen. '561 = (34 * 33)/2 '. Das ist also die Summe der einzigartigen Entfernungen. Wenn Sie '' round (dist (df, ober = T, diag = T), 3) 'anstelle von' dist (df) 'verwenden, erhalten Sie auch die Werte auf der Diagonalen und dem oberen Dreieck. Hoffe das klärt sich. – Florian
Sie meinen, Rest des Wertes sind weggelassen? Es ist das Leerzeichen, das ich in den Ergebnissen sehe. – SamAct