R - stringdist 成本设置错误

R - stringdist cost setting error

我尝试在

中设置操作成本时出错
stringdist 

知道为什么吗?

library(stringdist)

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

这非常有效(Levensthein 距离)

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

当我想设置成本时(替代两倍的插入缺失)

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

我有这个错误

Error: all(weight > 0) is not TRUE

参见?stringdistmatrix。具体来说,阅读权重参数所说的内容。您会看到 Weights must be positive and not exceed 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))