1

に一致していない、と言う:RecordLinkage - R 1つのベクトル。私は名前のいずれかのベクトルを持っている場合は、自己

a = c("tom", "tommy", "alex", "tom", "alexis", "Alex", "jenny", "Al", "michell") 

は、私は、このベクター内の類似性スコアを取得するために使用levenshteinSimまたは類似を取得したいです。しかし、私は自己スコアにしたくありません。たとえば、"tom" #1"tom" #3とスコアを付けます。 "tom" #1のスコアを"tom" #1に対して返さないようにして自己スコアにしないでください。

これまで、2つの異なるベクターabでこれを行っています。しかし、これを同じベクトルに使うと、"tom" #1"tom" #1に対してスコアをつけますが、これは避けたいものです。

これを行う方法はありますか?

+0

あなたは、出力のために期待しますどのような形式? – Scarabee

答えて

0

あなたはaのすべての要素順不同のペアを生成するcombnを使用することができます。

a <- c("tom", "tommy", "alex", "tom", "alexis", "Alex", "jenny", "Al", "michell") 

df <- data.frame(t(combn(a, 2)), stringsAsFactors = FALSE) 
df$sim <- RecordLinkage::levenshteinSim(df$X1, df$X2) 

head(df) 
# X1  X2 sim 
# 1 tom tommy 0.6 
# 2 tom alex 0.0 
# 3 tom tom 1.0 
# 4 tom alexis 0.0 
# 5 tom Alex 0.0 
# 6 tom jenny 0.0 
+0

大きなセットではエラーが表示されます - コンビネーションを使って組み合わせキーのみが返されるようにコンビネーションを使ってキーを設定する方法がありますか? – Rtab

関連する問題