微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在特定表中插入有关相似性度量igraph的结果?

如何解决如何在特定表中插入有关相似性度量igraph的结果?

我有一个边缘列表,我想使用 R 确定其相似性度量。

Edge list

Table 1

c1       c2
Algeria Andorra
Algeria Angola
Algeria Antigua and Barbuda
Algeria Argentina
Algeria Armenia
Algeria Australia
Algeria Austria
Algeria Azerbaijan
Algeria Bahamas
Algeria Bahrain
Algeria Bangladesh
Algeria Barbados
Algeria Belarus
Andorra USA

我正在使用 igraph

library (igraph)

data<- read.csv(file.choose(),header =TRUE) 

network<- graph.data.frame(data,directed = FALSE)

results<- ( similarity(
  network,vids = V(network),mode = c("all"),loops = FALSE,method = c("jaccard")))

由此,我得到的相似度指数为

Table 2

V1  V2  V3  V4  V5  V6  V7  V8  V9  V10 V11 V12 V13 V14 V15
1   0   0   0   0   0   0   0   0   0   0   0   0   0   0.0769
0   1   0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0   0.5 1   1   1   1   1   1   1   1   1   1   1   1   0
0.0769  0   0   0   0   0   0   0   0   0   0   0   0   0   1



现在,我想获得以下信息:

所有可能对的相似度指数。

Table 3

c1       c2                jaccard_index
Algeria  Andorra                    0
Algeria  Angola                     0
Algeria  Antigua and Barbuda        ... 
Algeria  Argentina  
Algeria  Armenia    
Algeria  Australia  
Algeria  Austria    
Algeria  Azerbaijan 
Algeria  Bahamas    
Algeria  Bahrain    
Algeria  Bangladesh 
Algeria  Barbados   
Algeria  Belarus
Algeria  USA        
Andorra  USA    
Andorra  Angola 
Andorra  Antigua and Barbuda    
Andorra  Argentina  
Andorra  Armenia    
Andorra  Australia  
Andorra  Austria    
Andorra  Azerbaijan 
Andorra  Bahamas    
Andorra  Bahrain    
Andorra  Bangladesh 
Andorra  Barbados   
Andorra  Belarus    
....     ...         ....

是否有一种简单的方法获取表 3 中的信息?

感谢任何提示

解决方法

应该这样做,

colnames(results) <- rownames(results) <- attr(V(network),'names')
d <- reshape2::melt(results,varnames = c('c1','c2'),value.name = 'jaccard_index')
d

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。