Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use R to compute Tanimoto/Jacquard Score as distance matrix

Tags:

r

matrix

distance

I would like to calculate the distance matrix of the rows in an array in R using Tanimoto/Jacquard Score as distance matrix.

Is it possible to be done? If yes, could you mind to teach me how to do it?

like image 599
Catherine Avatar asked Dec 03 '22 08:12

Catherine


2 Answers

vegan package has a vegdist function that can calculate, among other things, the Jaccard index. Assuming that's what you're after. It's use is pretty straightforward.

library(vegan)
data(varespec)
vare.dist <- vegdist(varespec, method = "jaccard")

Other available methods are

method   Dissimilarity index, partial match to "manhattan", "euclidean",
 "canberra", "bray", "kulczynski", "jaccard", "gower", "altGower", "morisita",
 "horn", "mountford", "raup" , "binomial" or "chao"
like image 163
Roman Luštrik Avatar answered May 24 '23 05:05

Roman Luštrik


I think you're going to have a lot more luck searching for "Jaccard" rather than "Jacquard".

  • Install the 'sos' package (install.packages("sos"))
  • Search for functions with these strings (library(sos); findFn("tanimoto jaccard")).
  • Poke through the results for something suitable (it looks to me like this is probably your best option; install.packages("ade4"); library("ade4"); ?dist.binary)
  • If you can't figure out how to use it, edit your question, giving a small reproducible example of what you want to do.
like image 22
Ben Bolker Avatar answered May 24 '23 05:05

Ben Bolker