2013-10-08 20 views
7

人このデータをクラスタリング分析していますが、距離を計算すると「強制的に導入されたNAs」という警告が表示されます。これは何を意味するのでしょうか?クラスタ分析中にクラスタ分析中に「強制で導入されたNAs」R

d <- dist(as.matrix(mydata1)) 

    Warning message: 
In dist(as.matrix(mydata1)) : NAs introduced by coercion 

マイデータサンプルは離れMetafamily列からすべての列は、クラスの数値です。この中

Metafamily  Total   July cpc  July cse_pla July offline July organic 
xerox 8560  275.829417 0.20943223 0.032628862  0.169210813 0.1130048 
office-supplie 246.9125664 0.057833047 0.020209909  0.535358617 0.136165617 

です。

この問題で私を助けてください。

答えて

13

それは問題を作成し、その最初の列があります:distインサイド

> a <- c("1", "2",letters[1:5], "3") 
> as.numeric(a) 
[1] 1 2 NA NA NA NA NA 3 
Warning message: 
NAs introduced by coercion 

は、上記のようにNAを生成し、数値に強制、存在しなければなりません。

結果は異なるものになりますので、私は、可能であればrownamesにすることを第一列またはより良い動きなしdistを適用するための提案をしたい:ところで

> dist(df) 
      1   2   3   4 
2 1.8842186        
3 1.9262360 1.2856110      
4 3.2137871 1.7322788 2.9838920   
5 1.3299455 0.9872963 1.9158079 1.8889050 
Warning message: 
In dist(df) : NAs introduced by coercion 
> dist(df[-1]) 
     1  2  3  4 
2 1.538458       
3 1.572765 1.049697     
4 2.624046 1.414400 2.436338   
5 1.085896 0.806124 1.564251 1.542284 

distを呼び出すときは、as.matrixは必要ありません。とにかくそれは内部的に行うでしょう。

EDIT:ミケーレ@ rownames

rownames(df) <- df$id 

> df 
    id  var1  var2 
A A -0.6264538 -0.8204684 
B B 0.1836433 0.4874291 
C C -0.8356286 0.7383247 
D D 1.5952808 0.5757814 
E E 0.3295078 -0.3053884 

> dist(df[-1]) # you colud also remove the 1st col at all, using df$id <- NULL. 
     A  B  C  D 
B 1.538458       
C 1.572765 1.049697     
D 2.624046 1.414400 2.436338   
E 1.085896 0.806124 1.564251 1.542284 
+0

を使用して - 感謝:) – Ravee

+0

@Raveeどういたしまして。 'rownames'の使い方で編集を確認してください – Michele

関連する問題