agrep: solo devuelve las mejores coincidencias

Estoy usando la función 'agrep' en R, que devuelve un vector de coincidencias. Me gustaría una función similar a agrep que solo devuelva la mejor coincidencia, o las mejores coincidencias si hay empates. Actualmente, estoy haciendo esto usando la función 'sdist ()' del paquete 'cba' en cada elemento del vector resultante, pero esto parece muy redundante.

/ edit: aquí está la función que estoy usando actualmente. Me gustaría acelerarlo, ya que parece redundante calcular la distancia dos veces.

library(cba)
word <- 'test'
words <- c('Teest','teeeest','New York City','yeast','text','Test')
ClosestMatch <- function(string,StringVector) {
  matches <- agrep(string,StringVector,value=TRUE)
  distance <- sdists(string,matches,method = "ow",weight = c(1, 0, 2))
  matches <- data.frame(matches,as.numeric(distance))
  matches <- subset(matches,distance==min(distance))
  as.character(matches$matches)
}

ClosestMatch(word,words)

Respuestas a la pregunta(2)

Su respuesta a la pregunta