为什么我不能根据igraph公式中的as.matrix命令创建矩阵?

时间:2017-09-01 18:31:50

标签: r matrix igraph

我想根据igraph公式创建一个矩阵(11行和2列)。它无法正常工作

bin_node_size<-vcount(g) #network size (number of nodes)
wei_node_str<-graph.strength(g) #node strenght of each vertex
bin_node_deg<-degree(g) #node degree for each vertex
node_matrix<-as.matrix(c(wei_node_str, bin_node_deg), row=bin_node_size, col=2)

以下是上述公式的输出

bin_nodesize
[1] 11

wei_node_str
 A  B  C  G  D  E  F  K  H  I  J 
19  3  5  5  5  9  3  4  1  3  3 

bin_node_deg
 A B C G D E F K H I J 
 6 2 2 2 1 3 1 2 1 1 1 

1)我有11个节点,但我不想在row = 11下写“11”,我想用节点度来确定矩阵中的行数。

2)如果我将row = row = bin_node_size替换为row = 11,我最终得到的是1列而不是2列的矩阵?即使命令as.matrix指定获得2列。

1 个答案:

答案 0 :(得分:0)

尝试使用 rbind 代替 c() ncol / nrow 而不是 col / row :< / p>

node_matrix<-as.matrix(rbind(wei_node_str, bin_node_deg), 
                   nrow=11, ncol=2)

输出是指定的矩阵:

      A B C G D E F K H I J
[1,] 19 3 5 5 5 9 3 4 1 3 3
[2,]  6 2 2 2 1 3 1 2 1 1 1

示例数据,例如:

require(data.table)

wei_node_str <- fread("
A  B  C  G  D  E  F  K  H  I  J 
19  3  5  5  5  9  3  4  1  3  3")

bin_node_deg <- fread("
A B C G D E F K H I J 
6 2 2 2 1 3 1 2 1 1 1 ")