2012-09-28 71 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值。你做了什麼來解決它? –