2

我正在尝试使用 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")

包括库 reshape2:

require(reshape2)

现在使用 reshape 将其转换为相邻表:

m <- as.matrix(dcast(df, V1 ~ V2, value.var = "V3", fill=0))

我正在关注教程。但在最后

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

4

0 回答 0