r - igraph R中相邻顶点的杰卡德系数

标签 r igraph

众所周知,两个顶点的杰卡德相似系数是共同邻居的数量除以与所讨论的两个顶点中至少一个顶点相邻的顶点数量。在 Igraph R 中,有函数相似度.jaccard(),它计算图中任意顶点的上述定义系数。我只想计算相邻顶点的杰卡德系数(即所谓的边的杰卡德系数),并且我想以长度等于所考虑图的边数的向量形式获得结果。我找到了我不熟悉的 Igraph C 库的此类问题的解决方案。我想在Igraph R中获得这样的结果。如何解决这个问题?

最佳答案

您可以通过创建一个函数来计算单个边末端的杰卡德相似度并将其应用于所有边来实现此目的。由于您没有提供任何数据,我将用任意图表来说明。

任意示例图

library(igraph)
set.seed(1234)
g = erdos.renyi.game(10,0.3)
plot(g)

Example graph

现在将杰卡德相似度函数应用于所有边

sapply(E(g),  
    function(x) similarity.jaccard(g, as.vector(ends(g,x)))[1,2])
 [1] 0.0000000 0.0000000 0.0000000 0.4000000 0.1666667 0.2000000 0.2000000
 [8] 0.2500000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000

您可以测试一些数据点。例如,第 7 条边位于顶点 2 和 8 之间,杰卡德相似度为 0.2

E(g)[7]
+ 1/13 edge:
[1] 2--8
similarity.jaccard(g, c(2,8))
     [,1] [,2]
[1,]  1.0  0.2
[2,]  0.2  1.0

关于r - igraph R中相邻顶点的杰卡德系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52748708/

相关文章:

r - 如何获取每个字符串 r 中以某些字符结尾的单词

r - ggplot 百分比乘以 100

r - 如何为数值制作有序的分面标签?

r - 将 igraph 对象的子集作为边的名称

r - 如何将 Networkx Graph 转换为 igraph 对象(从 python 到 R)

r - 使用 igraph 绘制网络

r - 更改一个节点的属性

r - R 中的编码实践 : what are the advantages and disadvantages of different styles?

r - 将图形分开打印到 PDF 文件并同时输出 R Markdown

r - 用R计算一个顶点(节点)的局部聚类系数(手工)