使用R进行分层聚类

时间:2014-11-08 14:27:29

标签: r cluster-analysis hierarchical-clustering

考虑以下几点:

A = (1, 2.5), B = (5, 10), C = (23, 34), D = (45, 47), E = (4, 17), F = (18, 4)

如何使用R?执行层次聚类 我已经阅读了这个例子Cluster Analysis,但我不确定如何将这些值作为点而不是常规数字输入。

当我这样做时

x <- c(...) #x values
y <- c(...) #y values

我可以使用

绘制它们
plot(x,y)

但是如何在示例中指定这些值:

mydata <- scale(mydata)

否则

mydata <- scale(x,y)

我收到以下错误

Error in scale.default(x, y) : 
  length of 'center' must equal the number of columns of 'x'

1 个答案:

答案 0 :(得分:3)

这样的东西?

A = c(1, 2.5); B = c(5, 10); C = c(23, 34)
D = c(45, 47); E = c(4, 17); F = c(18, 4)
df <- data.frame(rbind(A,B,C,D,E,F))
colnames(df) <- c("x","y")
hc <- hclust(dist(df))
plot(hc)

这将点放入具有两列xy的数据框中,然后计算距离矩阵(每个点与每个其他点之间的成对距离),并进行分层聚类分析在那。

然后我们可以用聚类着色数据。

df$cluster <- cutree(hc,k=2)    # identify 2 clusters
plot(y~x,df,col=cluster)

enter image description here