如何用R计算两个数据框之间的Jaccard相似度
How to calculate Jaccard similarity between two data frame with in R
我有两个二进制数据帧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相似系数(不是逐列的)
你能帮我解决这个问题吗?
这就是你想要的:
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")
您可以使用 dist
:
dist(t(cbind(unlist(DF1), unlist(DF2))), "binary")
# 0.2857143
DF2 <- as.data.frame(xor(DF1, 1) +0L)
的距离为 1
,DF2 <- DF1
的距离为 0
。
我有两个二进制数据帧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相似系数(不是逐列的)
你能帮我解决这个问题吗?
这就是你想要的:
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")
您可以使用 dist
:
dist(t(cbind(unlist(DF1), unlist(DF2))), "binary")
# 0.2857143
DF2 <- as.data.frame(xor(DF1, 1) +0L)
的距离为 1
,DF2 <- DF1
的距离为 0
。