2016-12-23 2 views
1

Je cours la distance d'édition en utilisant stringdist. La sortie remplace l'entrée par une liste numérotée au lieu de la chaîne en cours de comparaison. Ceci est actuellement ce que j'ai:Gestion des en-têtes à une distance d'édition

library(stringdist) 

a <- c("foo", "bar", "bear", "boat", method = "lv") 
stringdistmatrix(a) 

1 2 3 
2 3  
3 4 1 
4 3 2 2 

Je voudrais la sortie pour ressembler à ce qui suit afin que je puisse voir où la distance d'édition vient.

foo bar bear 
bar 3  
bear 4 1 
boat 3 2 2 

Répondre

2

Il est le paramètre useNames vous pouvez spécifier:

stringdistmatrix(a, useNames = TRUE) 

#  foo bar bear 
#bar 3   
#bear 4 1  
#boat 3 2 2 
1

Probablement vous voulez method = 'lv' comme argument à la fonction:

library(stringdist) 
a <- c("foo", "bar", "bear", "boat") 
stringdistmatrix(a, method = "lv", useNames = TRUE) 

#  foo bar bear 
#bar 3   
#bear 4 1  
#boat 3 2 2 

Vous peut utiliser adist de base R aussi pour obtenir une matrice de distance (avec distance Levenshtein généralisée) comme suit:

matrix(adist(c("foo", "bar", "bear", "boat")), nrow=length(a), dimnames=list(a, a)) 

#  foo bar bear boat 
#foo 0 3 4 3 
#bar 3 0 1 2 
#bear 4 1 0 2 
#boat 3 2 2 0 

ou un dist triangulaire inférieure

as.dist(matrix(adist(c("foo", "bar", "bear", "boat")), 
       nrow=length(a), dimnames=list(a, a))) 

#  foo bar bear 
#bar 3   
#bear 4 1  
#boat 3 2 2