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)
新しい行列には文字が含まれていません。