为什么我不能基于 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 ")
我想根据 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 ")