R 言語 - クラスター分析 - 処理エラー:強制によって導入された NA

1.クラスター分析

距離行列の使用

D=dist(iris)
hc=hcclust(D,method="single")  #method方法默认是complete,最长距离
plot(hc)

2. K-means (K-means クラスタリングまたは K-nearest neighbor クラスタリング)

通常のマトリックスを使用する

set.seed(123)
km=kmeans(chart,5)
kc=km$cluster    #cluster是km的一列值,用$可以将其单独读取出来

実験的な質問:

エラーメッセージ:

警告メッセージ:
In dist(effection) : 強制によって導入された NA

> effection=read.xlsx('D:/大三下/多元统计分析R语言/实验报告/3-6.xlsx',rowNames=T,1)
> hc=hclust(dist(effection),method = "ward.D2")
Warning message:
In dist(effection) : NAs introduced by coercion

これは、実験データに問題があることを示しています. 2 つの可能性と 2 つの処理方法があります。

1. データをインポートするとき、関係のないデータ (例: シリアル番号) の最初の列も操作に追加されます。

—>Excelテーブルで直接無関係な列を削除する

——> または、データをインポートするときに、次のrowNames = Tを設定し、最初にインポートされた列をタイトルとして設定し、後続の操作に参加しません

2. エクセルの表の実験データはチャートタイプである可能性もあり、インポート時に認識され、その値が自動的に NA として割り当てられますが、これは不明です。また、結果に何らかの損害を与える可能性があります。

—>Excel テーブルを開き、テーブル内のデータ、特に数字間の余分なスペースを確認します 

3.チャートタイプのデータが計算に参加

——> R に付属の関数 - matrix() および cbind() または rbind() 関数を使用して、文字データを含まない新しいマトリックスを構築します。

例えば:

元のマトリックス:

 次のコードを使用して、新しい行列 X を作成します。

> x1=matrix(iris$Sepal.Length)
> x2=matrix(iris$Sepal.Width)
> x3=matrix(iris$Petal.Length)
> x4=matrix(iris$Petal.Width)
> X=cbind(x1,x2,x3,x4)
> D=dist(X)
> hc=hclust(D,method = "single")
> plot(hc)

 新しい行列には文字が含まれていません。

 

 

おすすめ

転載: blog.csdn.net/qq_45947664/article/details/124693184
おすすめ