R语言初学笔记2

R语言初学笔记2

一些简单的操作,数据是第一篇的数据,主要是对于一些刻画中心点的名词进行一些应用,点度中心度,接近中心度,中间中心度,最后提出了主要应用的地方

library(igraph)
data<- read.table("G:/facebook_combined/test.txt",header = FALSE,sep=" ")#默认false,不把第一行作为列名称处理,如果为TRUE则把数据文件第一行作为列名称处理

g<- graph.data.frame(data,directed = FALSE)
g_data<- as_data_frame(g,what = c("both"))  #显示所有元素
labels <- union(unique(data[,1]),unique(data[,2]))
labels
ids<- 1:length(labels)      #ids的长度从1 到labels的长度
names(ids)<- labels     #设置labels与id的映射关系

E(g)$weight<- data[,3]     #给每条边赋予权重
g<- simplify(g,remove.multiple = T,remove.loops = T,edge.attr.comb = "mean")  #这里面还有一个属性是计算权值的方式
V(g)$labels <- labels     #将labels的值赋予,不然无法用[-which(V(g)$labels=="c")]
V(g)$labels
length(V(g))   #得到样本的长度
V(g)[1:2]    #读取前两个样本点的内容
get.shortest.paths(g,from = V(g)[label=="a"],to = V(g)[label=="c"])
shortest.paths(g)  #点之间的最短距离,这里使用权值相加得到最小来确定


shortest.paths(g,v =V(g)[labels=="c"],to=V(g)[labels=="f"])
shortest.paths(g,v =V(g)[labels=="a"])
degree(g,v=V(g),mode = "total",normalized = T)  #归一化每个顶点的度
degree(graph = g ,v=V(g)[labels=="a"],mode = "total",normalized = T)

pa<- shortest.paths(graph = g,v=V(g)[labels=="c"])[-which(V(g)$labels=="c")] #计算节点C的接近中心度
pa
pa<- ifelse(pa==Inf,length(V(g)),pa)#将距离为无限大的数据替换为点总数length(V(g))
1/sum(pa)  #求和的倒数

closeness(graph = g,vids = which(V(g)$labels=="c")) #与上面的功能是一样的是求接近中心度,计算节点C的接近中心度

g<- g-V(g)[c(which(V(g)$labels=="f"),which(V(g)$labels=="g"))]
plot(g)
betweenness(g,v=V(g)[which(V(g)$labels=="c")]) #计算C的中间中心度

pa<- shortest.paths(graph = g,v=V(g)[which(V(g)$labels=="b")],to=V(g)[which(V(g)$labels=="a")]) #b到a的最短路径

shortest_paths(graph = g,from=V(g)[which(V(g)$labels=="b")],to=V(g)[which(V(g)$labels=="a")]) #显示路径

#点度中心度 描述的是行动者的局部中心指数。如果某点的中心度较高,则信息被该点传播后可以到达更多的点 研究信息交流活动

#接近中心度 考虑的是行动者在多大程度上与其他行动者相互影响。如果某店的中心度较高,则改点所出发的信息可以更快地传播到整个网络中 研究信息传递的有效性和独立性

#中间中心度 研究一个行动者在多大程度上居于其他两个行动者之间,因而是一种“控制能力”指数。如果某点的中心度较高 ,则信息的传播大多要经过该点才能完成 研究对信息交流的控制


如果错误,请指出,必定第一时间改,谢谢大家。

你可能感兴趣的:(R语言)