2016-12-23 7 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 

あなたが取得することもbase Rからadistを使用することができます距離行列(一般化レーベンシュタイン距離)は、

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 

または下三角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 
関連する問題