0

当我尝试将运营成本设置为

stringdist 

任何想法为什么?

library(stringdist)

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

这非常有效(Levensthein 距离)

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

当我想设置成本时(替换两倍的 indel)

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的。在这种情况下,错误告诉您一个权重不是正数。您将其中一个权重设置为 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 回答