2016-12-23 3 views
1

Я бегу редактируемое расстояние, используя stringdist. Выход заменяет ввод нумерованным списком вместо фактической сравниваемой строки. Это в настоящее время, что у меня есть:Поддержание заголовков на расстоянии редактирования

library(stringdist) 

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

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

Я хотел бы, чтобы выход выглядеть следующим образом, чтобы я мог видеть, где расстояние редактирования приходит.

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

ответ

2

Существует параметр useNames можно указать:

stringdistmatrix(a, useNames = TRUE) 

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

Вероятно, вы хотите method = 'lv' в качестве аргумента функции:

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 

Вы можете использовать adist от base R также получить (с обобщенное расстояние Левенштейн) следующим образом:

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 

или нижняя треугольная расстояние

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