有一些序列数据需要比较。预期输出是距离矩阵,其显示每个序列与其他序列的相似程度。以前,我在Python中使用了ngram.NGram.compare
,现在我想切换到R.我找到了ngram
和biogram
包,但我无法找到生成预期输出的确切函数。
假设这是数据
a <- c("ham","bam","comb")
输出应该是这样的(每个项目之间的距离):
# ham bam comb
#ham 0 0.5 0.83
#bam 0.5 0 0.6
#comb 0.83 0.6 0
它是输出的等效Python代码:
a = ["ham","bam","comb"]
import ngram
[(1 - ngram.NGram.compare(a[i],a[j],N=1))
for i in range(len(a))
for j in range((i+1),len(a)) ]
答案 0 :(得分:1)
您可以使用stringdistmatrix
包中的stringdist
。查看stringdist-metrics
文档哪些指标可用。
a <- c("ham","bam","comb")
stringdist::stringdistmatrix(a, a, method = "jaccard")
[,1] [,2] [,3]
[1,] 0.0000000 0.5 0.8333333
[2,] 0.5000000 0.0 0.6000000
[3,] 0.8333333 0.6 0.0000000