2012-09-28 70 views
3

当试图簇I得到的消息:在不相似矩阵 否聚类进行,NA的:- [R聚类产生错误消息

错误黛安娜(mat.in,立= TRUE)。

这是意想不到的,因为戴安娜需要的是矩阵而不是相异矩阵。根据该文件,NA的允许在矩阵中[但不在相异矩阵中]。

例子:

require("cluster") 
mat.in=data.frame(A=c(12,10,NA,14,12,60),B=c(NA,11,45,25,13,65)) 
d=diana(mat.in,stand=TRUE) 

我已经确定有既非全部-NA列,也不全NA行。

任何人都知道这里发生了什么?

回答

1

问题,至少对于示例数据,是样本1和3有没有信息用来计算不相似性。试想一下:

> daisy(mat.in) 
Dissimilarities : 
      1   2   3   4   5 
2 2.828427           
3  NA 48.083261        
4 2.828427 14.560220 28.284271      
5 0.000000 2.828427 45.254834 12.165525   
6 67.882251 73.593478 28.284271 60.959003 70.767224 

Metric : euclidean 
Number of objects : 6 
> mat.in 
    A B 
1 12 NA 
2 10 11 
3 NA 45 
4 14 25 
5 12 13 
6 60 65 

这就解释了,在相似矩阵的NA是真实的。对于样本1和2之间的比较,样本3缺少A,但存在1,而对于B则相反。由于没有数据可用于计算这两个样本的不相似度,因此您可以在差异矩阵中获得NA

注意NA s的明确,只要仍有一些信息来计算的差异性允许的;所产生的基体含有所有的样品和样品1和3

+0

由于加文之间的差异性。我的数据集显然比这个例子更复杂,但你现在已经把我放在了正确的方向。 – Henk

+0

@亨克我也遇到了使用daisy()的同样的问题。我的菊花功能在数据帧中具有NA部分填充率的b/c值。你做了什么来解决它? –