5つのデータを用意する。ここでは各々2次元(x軸、y軸)でやってみる。 ちなみにR ではこのデータの形式をベクトルと呼ぶ

d1 <- c(2, 1)
d2 <- c(1, 2)
d3 <- c(2, 4)
d4 <- c(4, 4)
d5 <- c(4.5, 2)

data <- rbind(d1, d2, d3, d4, d5)

data
##    [,1] [,2]
## d1  2.0    1
## d2  1.0    2
## d3  2.0    4
## d4  4.0    4
## d5  4.5    2

ベクトルを結合して、行列を作成する rbindのrはrow(行)を意味し、行として1つづく追加してゆく 列として1つづつ追加する場合は、column(列)なので、cbindを使う(ここでは関係ない) data <- cbind(d1, d2, d3, d4, d5)

実際どんな行列のデータになっているか見てみる

これをプロットしてみる

plot(data)

各要素感の距離を求めて(dist関数), hclust関数に入力するとデンドログラム描画の準備OK plotするとデンドログラムが表示される。
hang=-1を指定すると要素の名前が下に表示されるので見やすい。

dist関数は、各要素間の距離を計算してくれる。
rect.hclust(hc, 2, 1) は2つに分けて、1つ目をラインで囲む hclust関数は、デンドログラム作成のためのクラスタリング(グループ化)をしてくれる。
この1行のコードでいいのでスゴイ。
hc <- hclust(d)

d <- dist(data)
hc <- hclust(d)
plot(hc)

plot(hc, hang=-1)
rect.hclust(hc, 2, 1)

結果をプロット(可視化)してみた。
以下の2つは基本的に同じではあるが、表示方法が異なる。
plot(hc)
plot(hc, hang=-1)

ans <- cutree(hc, k=2)
ans
## d1 d2 d3 d4 d5 
##  1  1  2  2  2

2つに分けて、各々がどちらに分類されたかをみた。

最初に用意してデータはじ2次元だったが、3次元にしてみる。この次元数はいくつでもOK。
実際に必要な要素数だけ用意すればよい。

d11 <- c(2, 1.1, 4.1)
d12 <- c(1, 2, 3)
d13 <- c(2, 4, 3)
d14 <- c(4, 4, 2)
d15 <- c(4.5, 2, 4)

data1 <- rbind(d11, d12, d13, d14, d15)

data1
##     [,1] [,2] [,3]
## d11  2.0  1.1  4.1
## d12  1.0  2.0  3.0
## d13  2.0  4.0  3.0
## d14  4.0  4.0  2.0
## d15  4.5  2.0  4.0