我试图在R中使用马尔可夫聚类算法聚类图数据集。 我已经关注了很多教程,包括
我的数据集如下所示:
V1 V2 V3
1 0 1 1
2 0 2 1
3 1 2 1
4 2 3 2
5 2 4 2
6 2 5 3
7 3 6 4
8 3 7 5
9 3 8 5
10 4 9 6
11 4 10 4
12 4 11 5
13 4 12 7
14 4 13 4
V1和V2是节点,V3是连接的权重。
每个教程都提到创建一个相邻的矩阵。当我尝试他们的代码时,它总是抛出错误。 我假设这是由于列和行的不同参数造成的。但没有什么是真的有道理。
即使创建相邻矩阵也具有挑战性,更不用说实施MCL了。
有什么想法吗?我在这里缺少什么?
更新:
这是我尝试的代码:
df <- read.table(header=T, stringsAsFactors=F, text=" V1 V2 V3
1 0 1 1
2 0 2 1
3 1 2 1
4 2 3 2
5 2 4 2
6 2 5 3
7 3 6 4
8 3 7 5
9 3 8 5
10 4 9 6
11 4 10 4
12 4 11 5
13 4 12 7
14 4 13 4")
包括library reshape2:
require(reshape2)
现在使用reshape将其转换为相邻的表:
m <- as.matrix(dcast(df, V1 ~ V2, value.var = "V3", fill=0))
我正在关注this教程。但是在
结束时m <- as.matrix(dcast(df, V1 ~ V2, value.var = "V3", fill=0)),
教程中还有另一个参数[,2:3]
。本教程使用方形矩阵开始。当我尝试运行下一个命令时:
row.names(m) <- colnames(m)
它会抛出错误显示:
Error in dimnames(x) <- dn :
length of 'dimnames' [1] not equal to array extent