复杂网络节点重要性常用R语言笔记

举报
孙小北 发表于 2021/12/19 17:38:57 2021/12/19
【摘要】 本文整理网络节点重要性常用R语言算法。

.读取Excel数据,如读取data文件里面经典网络的源数据-邻接表

#读取Excel包
library(XLConnect)
data_jingdian=readWorksheetFromFile("D:/workspace/R/data.xlsx",sheet="jingdian",header=FALSE)

2.将源数据转换成-邻接矩阵、度等

#convertToGraph(data)  data源数据   返回:g-图,D-度,A-邻接矩阵,n-节点个数
convertToGraph<-function(data){  
    #将数据转换成数据框,图  
    g<-graph.data.frame(data,directed=FALSE);  
    #统计  
    #summary(g);  
    #节点名称  
    #V(g)$name;  
    #边  
    #E(g);  
    #ng=length(V(g));  #节点数n 不包括孤立节点    
    m=nrow(data);  #原始数据行数m   
    if(max(data[1:m,1])>max(data[1:m,2])){   
        n<-max(data[1:m,1]);  
    }else{   
        n<-max(data[1:m,2]);  
    }  
    #数据处理,计算邻接矩阵  
    A=matrix(0,n,n); #邻接矩阵  
    for (i in 1:m){    
        A[data[i,1],data[i,2]]<-1;    
        A[data[i,2],data[i,1]]<-1;  
    }    
    #计算度  
    # D=degree(g);  
    #计算度  D<-apply(A,1,sum);    
    output<-list(g=g,ng=ng,A=A,D=D,n=n);  
    return (output);
}

3.计算代码运行时间system.time()

ptm <- proc.time()
for (i in 1:10000) 
    x <- rnorm(1000)
proc.time() - ptm

user  system elapsed   

2.10    0.01    2.14

system.time(for (i in 1:10000) x <- rnorm(1000))

user  system elapsed    

2.01    0.00    2.06

“用户”是消耗在应用程序(非操作系统部分)执行的时间,“系统”是底层操作系统执行(例如磁盘读写等)部分的时间,“流逝”是经过的总时间(可以认为是前两者的总和)。一般优化时主要关注“用户”的时间

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。