如何计算R

时间:2015-05-20 21:06:04

标签: r dataframe similarity

我有两个二进制数据帧c(0,1),我没有找到任何计算两个数据帧之间的Jaccard相似性系数的方法。我见过在单个数据框的列之间进行此计算的方法 让我们说DF1

DF1 <- data.frame(a=c(0,0,1,0),
                  b=c(1,0,1,0),
                  c=c(1,1,1,1)) 

DF2

DF2 <- data.frame(a=c(0,0,0,0),
                  b=c(1,0,1,0),
                  c=c(1,0,1,1)) 

我所看到的是两个数据帧之间的单个Jaccard相似性系数(不是逐列)

你可以帮我这个吗?

2 个答案:

答案 0 :(得分:2)

您可以使用dist

dist(t(cbind(unlist(DF1), unlist(DF2))), "binary")
# 0.2857143

1的距离为DF2 <- as.data.frame(xor(DF1, 1) +0L)0的距离为DF2 <- DF1

答案 1 :(得分:1)

这样做你想要的:

DF1<-data.frame(a=c(0, 0, 1, 0),
           b=c(1,0,1,0),
           c=c(1,1,1,1))

DF2<-data.frame(a=c(0,0,0,0),
               b=c(1,0,1,0),
               c=c(1,0,1,1))

install.packages("vegdist")
library(vegdist)
vegdist(rbind(unlist(DF1, use.names=F),unlist(DF2, use.names=F)), method = "jaccard")