Ho un frame di dati con tre colonne: ref, target, distance. Ogni ref ha una distanza misurata dallo stesso set di bersagli e vorrei ottenere un vettore di distanze minime per ogni ref. In questo momento sto facendo questo con un ciclo for, ma sembra che ci dovrebbe essere un modo per vettorializzare questo.Vectorize per il frame di dati loop su R
Ecco il mio codice:
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)
}
Am I condannato per avere il mio frame di dati impostato in questo modo o c'è un buon modo per vettorizzare questo? Grazie per l'aiuto!
Penso che tu abbia a ')' mancante qui ... – adibender
ta. Risolto ora .. – mnel
Questo sembra non funzionare abbastanza bene come è. Ho riscontrato il seguente errore quando ho provato questo: ** Errore in Ops.factor (ref, target): set di fattori di livello sono diversi ** Tuttavia, ** DT [, lista (bestdist = min (distanza)), da = ref] ** Produce l'output, ma senza il riferimento ref! = target. – weitzner