如何编写此Tanimoto系数代码以使其不会循环

时间:2018-11-27 16:39:58

标签: r loops

我编写了代码,因此,如果您输入指纹矩阵,则每个指纹都可以相互测量。我想修改此代码,以便将我输入的指纹与所有其他指纹进行比较,而不会在其他指纹之间进行比较。

tanimoto <- function(x, similarity=FALSE) {
  n = dim(x)[1] # nrow x
  x = matrix(as.logical(x), n)
  res = apply(x,2,function(x1) {i=colSums(x1 & x) / colSums(x1 | x); ifelse(is.na(i), 1, i)})
  if(similarity) return(res)
  else return(1-res)
}

谢谢。

0 个答案:

没有答案