【发布时间】:2018-02-16 22:24:26
【问题描述】:
我有一个二分边列表,我想将其转换为仅包含“来自”节点的单分图。由于大小,我需要在稀疏矩阵中执行此操作。不幸的是,这意味着更简单的解决方案(例如使用bipartite.projection(graph))会冻结所有内容。我的数据如下:
To From Weight
A1 B2 1
A1 B3 1
A2 B2 1
A3 B3 1
A3 B4 1
A4 B2 1
A4 B3 1
使用 Matrix 包,我创建了一个具有正确尺寸的稀疏矩阵,但由于某种原因,只填充了对角线。对于我使用的稀疏矩阵:
myMat <- sparseMatrix(as.integer(as.factor(df$from),
as.integer(as.factor(df$from),
x = df$weight,
dimnames = list(levels(as.factor(df$from)),
levels(as.factor(df$from))
)
)
返回:
B2 B3 B4
B2 2 . .
B3 . 2 .
B4 . . 1
对角线对权重求和,但矩阵的其余部分是空的,我期望它也填充了总和权重。
我想要的是:
B2 B3 B4
B2 . 2 .
B3 2 . 1
B4 . 1 .
因为这是二分图一侧的矩阵,matrix[i,j] 表示连接任意两个 df$from 值的 df$to 值的计数。这将是我赋予任何网络图中边的权重。
【问题讨论】:
标签: r matrix sparse-matrix social-networking