gpt4 book ai didi

r - 给定距离矩阵 256x256 的聚类

转载 作者:行者123 更新时间:2023-12-02 22:31:09 27 4
gpt4 key购买 nike

所以,我有 256 个对象,并计算了它们之间的距离矩阵(成对距离)。下面给出了我的距离矩阵的子集:

> dm[1:10, 1:10]
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
[1,] 0 1 1 1 1 2 2 2 1 2
[2,] 1 0 1 1 2 1 2 2 2 1
[3,] 1 1 0 1 2 2 1 2 2 2
[4,] 1 1 1 0 2 2 2 1 2 2
[5,] 1 2 2 2 0 1 1 1 1 2
[6,] 2 1 2 2 1 0 1 1 2 1
[7,] 2 2 1 2 1 1 0 1 2 2
[8,] 2 2 2 1 1 1 1 0 2 2
[9,] 1 2 2 2 1 2 2 2 0 1
[10,] 2 1 2 2 2 1 2 2 1 0

> str(dm)
int [1:256, 1:256] 0 1 1 1 1 2 2 2 1 2 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:256] "V1" "V2" "V3" "V4" ...

现在,我想使用这个距离矩阵来相应地对这 256 个对象进行聚类。因此,我使用了hclust,但出现了错误:

> hclust(dm, method="single")
Error in if (is.na(n) || n > 65536L) stop("size cannot be NA nor exceed 65536") :
missing value where TRUE/FALSE needed


> hclust(dm, method="complete")
Error in if (is.na(n) || n > 65536L) stop("size cannot be NA nor exceed 65536") :
missing value where TRUE/FALSE needed

因此,即使我使用矩阵的较小子集,我仍然会得到相同的错误:

> hclust(dm[1:10,1:10], method="complete")
Error in if (is.na(n) || n > 65536L) stop("size cannot be NA nor exceed 65536") :
missing value where TRUE/FALSE needed

知道我的分析有什么问题吗?

最佳答案

dm 需要是 hclust 中“dist”类的对象。

因此,您可以使用 dist 函数计算相异矩阵,然后使用 hclust 中的对象。

m_trix = matrix(data=1:2,nrow=10,ncol=10)

dm = dist(m_trix,method="euclidean")
cluster = hclust(dm, method="single")
plot(cluster)

或者您可以直接在 hclust 中使用 dist(m_trix):

cluster = hclust(dist(m_trix), method="single")
plot(cluster)

关于r - 给定距离矩阵 256x256 的聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24092839/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com