Ich habe einen Datenrahmen mit drei Spalten: Ref, Ziel, Abstand. Jede Referenz hat eine gemessene Entfernung zu der gleichen Menge von Zielen und ich möchte einen Vektor von Mindestabständen für jede Referenz erhalten. Im Moment mache ich das mit einer for-Schleife, aber es scheint, als müsste es eine Möglichkeit geben, dies zu vektorisieren.Vectorize für Schleife über Datenrahmen in R
Hier ist mein Code:
refs <- levels(data$ref)
result <- c()
for (ref in refs) {
# Find the minimum distance for observations with the current ref
# but be sure to protect against ref == target!
best_dist <- min(data[data$ref == ref & data$target != ref,]$distance)
result <- c(result, best_dist)
}
Bin ich dazu verdammt, durch meinen Datenrahmen auf diese Weise eingerichtet haben oder ist es ein guter Weg, dies zu vektorisieren? Danke für die Hilfe!
Ich glaube, Sie haben a ')' fehlt dort ... – adibender
ta. Jetzt behoben .. – mnel
Dies scheint nicht ganz so zu funktionieren, wie es ist. Ich bekomme den folgenden Fehler, wenn ich dies versuche: ** Fehler in Ops.factor (Ref, Ziel): Level-Sätze von Faktoren sind unterschiedlich ** Allerdings ** DT [, Liste (bestdist = min (Abstand)), durch = ref] ** Liefert Ausgabe, aber ohne ref! = Zielprüfung. – weitzner