我想根据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列。
答案 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 ")