代码之家  ›  专栏  ›  技术社区  ›  Hadij dmeu

在蛋白质数据聚类中使用ngram(ngram.ngram.compare equivalent in R)

  •  0
  • Hadij dmeu  · 技术社区  · 7 年前

    有一些序列数据需要比较。预期的输出是距离矩阵,它显示了每个序列与其他序列的相似程度。之前,我使用 ngram.NGram.compare 在Python中,现在我想切换到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)) ]
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   phiver    7 年前

    你可以使用 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