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

Why can't I create a matrix based on as.matrix command from igraph formulas?

我想根据 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 列。

尝试使用 rbind 而不是 c()ncol/nrow col/row:

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 ")