2016-12-23 5 views
1

Ich führe Bearbeitungsentfernung mit stringdist. Die Ausgabe ersetzt die Eingabe durch eine nummerierte Liste anstelle der tatsächlichen verglichenen Zeichenfolge. Dieser ist zur Zeit, was ich habe:Kopfzeilen in Editierdistanz bearbeiten

library(stringdist) 

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

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

Ich würde die Ausgabe wie wie die folgenden zu sehen, so dass ich sehen kann, wo die Editierdistanz herkommt.

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

Antwort

2

Es ist der useNames Parameter Sie angeben können:

stringdistmatrix(a, useNames = TRUE) 

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

Wahrscheinlich wollen Sie method = 'lv' als Argument für die Funktion:

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 

Sie adist von base R auch zu bekommen verwenden eine Abstandsmatrix (mit verallgemeinerte Levenshtein-Distanz) wie folgt:

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 

oder ein unteres Dreieck dist

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 
Verwandte Themen