0

で運用コストを設定しようとするとエラーが発生します

stringdist 

理由はありますか?

library(stringdist)

seq = rbind(
  c('aaa'), 
  c('aba'), 
  c('aab'), 
  c('ccc')
)

これは完全に機能します(レーベンシュタイン距離)

stringdistmatrix(a = seq, b = seq, method = 'lv')

コストを設定したい場合(インデルの2倍代入)

stringdistmatrix(a = seq, b = seq, method = 'lv', weight = c(1,1,2,0))

このエラーがあります

Error: all(weight > 0) is not TRUE
4

1 に答える 1

1

を参照してください?stringdistmatrix。具体的には、weights 引数の内容を読んでください。わかりますWeights must be positive and not exceed 1。この場合、エラーは、1 つの重みが正でないことを示しています。ウェイトの 1 つが 0 に設定されています。

それを修正しても、1 を超える別の重みがあるため、エラーが発生します。

stringdistmatrix(a = seq, b = seq, method = 'lv', weight = c(1,1,2,1))
# Error: all(weight <= 1) is not TRUE

したがって、それも修正する必要があります。重みを正の値に保ち、1 を超えないようにします。

例えば

stringdistmatrix(a = seq, b = seq, method = 'lv', weight = c(1,1,1,1))
stringdistmatrix(a = seq, b = seq, method = 'lv', weight = c(0.1, 0.1, 0.1, 0.1))
于 2015-06-20T15:14:56.903 に答える