【发布时间】:2020-06-25 15:28:42
【问题描述】:
我在 R 中有一个具有相似度分数的边缘列表作为数据框:
example <- data.frame(Source = c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4),
Target = c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4),
Similarity = c(1,0,.2,0.1,.004,.1,0,0,1,2,0,.14,.006,0,1,.036))
Source 和 Target 列表示 ID,因此应将其视为因素而不是数字。忽略相似度值,我只是输入随机数来说明。
现在我想把这个边列表格式转换成一个矩阵,其中行名=Source,列名=Target,两者的交集就是Similarity。然后我会将数据输入到 Rtsne 包中进行绘图。
我尝试这样做:
m1 <- as.matrix(sparseMatrix(i = example$Source,
j = example$Target,
x = example$Similarity))
除了行和列没有命名标记之外,这很好用。
m1
[,1] [,2] [,3] [,4]
[1,] 1.000 0.0 0.2 0.100
[2,] 0.004 0.1 0.0 0.000
[3,] 1.000 2.0 0.0 0.140
[4,] 0.006 0.0 1.0 0.036
我应该如何修改 as.matrix 代码以保留行/列标签?我将在稍后的过程中使用它们。
【问题讨论】:
标签: r