我想计算两个任意序列之间的Levenshtein距离。
a <- 1:100
b <- c(1, 1:100)
edit_distance(a, b) == 1
我知道adist
函数和stringdist
包,但它们只适用于字符向量。如果序列中的符号数很少,我可以将它们编码为字符并使用上述函数。
但通常会有1000个不同的符号。另一种选择是将它们编码为Unicode字符(adist
对它们起作用:adist("\U00001", "\U00001\U00002")
),但我不知道如何做到这一点。
答案 0 :(得分:2)
您可以使用intToUtf8
将整数映射到Unicode字符:
a2 <- intToUtf8(a)
b2 <- intToUtf8(b)
adist(a2, b2)
# [,1]
# [1,] 1