我在igraph中计算了一些网络数据的集中度统计,我需要两件事(我认为)。
首先,我想将顶点名称(V(g)$name
)和我计算出的新的中心度度量((V(g)$eigen
)从图形中移到数据框中。
这是图形中$names
和$eigen
的第一行。
$names: year young head black cent call
$eigen: 0.043284327 0.017877101 0.015949110 0.022489540 0.047533029 0.035666735
我想出了下面的代码,但它只是提取顶点名称,不包括我计算出的(V(g)$eigen
统计信息。
第二,一旦在数据框中同时包含两列,我希望该数据框按(V(g)$eigen
统计信息进行排序,并且最大值显示在顶部。
#assigning eigenvector value to vertices
V(subnet)$eigen = eigen_centrality(subnet, weights = E(subnet)$weight)
#export two-column vector (vertex name, centrality)
subnet_matrix <- as.matrix(c(V(subnet)$name), V(subnet)$eigen)
#create new data frame with just those two columns
subnet_df = as.data.frame(subnet_matrix)
#sort df by the centrality value (biggest at top)
sort.list(subnet_df$eigen)
我希望它最终看起来像这样(在数据框中):
NAME EIGEN
cent 0.047533029
year 0.043284327
call 0.035666735
black 0.022489540
young 0.017877101
head 0.015949110
任何帮助将不胜感激。我是R和编码方面的新手,所以我被这种方法困扰的时间太长了。