微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算R中两个字符串之间字符的二进制值之间的汉明距离

如何解决计算R中两个字符串之间字符的二进制值之间的汉明距离

我需要帮助!

想象一下我有一个包含n个元素的向量-

每个元素都是一个带有64个字符的字符串(总是),我想建立一个所有元素的距离矩阵。每个元素的每个字符都是十六进制(0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f),X或{{ 1}},其中-表示缺席,X表示任何值。

除了-X以外,两个字符之间的距离必须是每个元素的二进制表示形式的汉明距离:

  • 如果字符相等,则距离保持不变
  • 如果任何字符是X,则距离也保持不变
  • 如果任何字符是-并且它们不同,则距离增加5。
  • 如果它们不同,则将字符的二进制表示之间的汉明距离添加到该距离中

我能够构建一个脚本来对其进行功能计算:

 dist = data.frame()
 for(m in 1:length(fp)){
    for(l in 1:length(fp)){
      d=0
      for(k in 1:nchar(fp[l])){
        if(substr(fp[m],k,k) == substr(fp[l],k)){d = d}
        else if((substr(fp[m],k)=="X")|((substr(fp[l],k)=="X"))){d = d}
        else if((substr(fp[m],k)=="-")|((substr(fp[l],k)=="-"))){d = d+5}
        else{
          d = d+sum(stringdist(as.character(as.binary(as.hexmode(substr(fp[m],k)),n=4)),as.character(as.binary(as.hexmode(substr(fp[l],n=4))))
        }
      }
      dist[l,m] = d
    }
  }

但是当fp长200+时,它会给我一条错误消息:

readiness probe and startup probe

我已经使用了Sys.setenv('R_MAX_VSIZE'=32000000000),但它仍然给出错误消息。

关于做什么的任何想法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。