文本挖掘:社交网络、社群划分
这个函数有这么几个参数: data,是两列关系数据,前面已经讲过了,只能两列,而且要同等长度; dir,逻辑值,T代表有向图,F无向图; rem.multi,逻辑,T删除重复变量并更新线权重weight,F不删除并且线权重为1。 2、文本型数据一般数据结构都可以套用上面的函数,包括平行关系型的有向、无向;文本型。其中对于文本矩阵型数据还有一个办法,参考于统计词画番外篇(一):谁共我,醉明月? 利用igragh包中的graph_from_adjacency_matrix函数。
代码解读:adjm是随便构造的一个矩阵,函数; graph_from_adjacency_matrix中, weighted=TRUE,是否需要加入权重; add.rownames以及add.colnames,因为前面的自编译函数init.igraph可以自定义标签,这里定义名称,可以用add.rownames加入标签列,这样你可以用V(g10)$row以及V(g10)$col直接看到标签。其中还可以自己定义名字,row,col都是笔者自己定义的。 三、一些基本操作关系网络中,每一个点的信息存放在V中,每一个线的信息存放在E中。并且通过自编译的init.igraph函数,V(g)$label以及E(g)$weight都是自带的属性。 可以生成一个空的关系网络。 并且关系网络生成之后,R里面就不是用真实的名字来做连接,是采用编号的。例如(小明-小红)是好朋友,在R里面就显示为(1-2),所以需要单独把名字属性加到序号上。
1、关系网络中的点集V点集就是网络中所有的点,如有向文本型那个数据格式,包括了14个点;7条线。 (1)点集属性点集与数据框的操作很相似,属性是可以自己赋上去的,比如V(g)$label就是赋上去的,你还可以给点集加上颜色(V(g)$color)、加上每个点的尺寸(V(g)$size),加上分类(V(g)$member) 点集的选择跟数据框操作一样,比如我要选择群落为1的点集,就是V(g)[which(V(g)$member==1)] 比如我要选择点度数大于1的点集,V(g)[degree(g)>1] 如果我想知道一下这两个点之间是否有关系,可以用edge.connectivit函数,edge.connectivity(g,4,9) ?代表着第四个点与第九个点之间是否有连接关系。返回的0/1。0是没有线,1代表有线。 (2)点集加减操作我想在原来的基础上加入一些点,用add.vertices
如果我想减去点度数为0的点
|