2015-11-05 80 views
1

我有data.frame,例如:聚類其中R

test<-data.frame(matrix(c(1:5,2:6,3:7),nrow=3)) 

test<-cbind(rbind(exp(test),test),rbind(test,2*test)) 
test 
#   X1   X2  X3  X4  X5 X1 X2 X3 X4 X5 
# 1 2.718282 54.598150 20.08554 403.42879 148.4132 1 4 3 6 5 
# 2 7.389056 148.413159 54.59815 20.08554 403.4288 2 5 4 3 6 
# 3 20.085537 7.389056 148.41316 54.59815 1096.6332 3 2 5 4 7 
# 4 1.000000 4.000000 3.00000 6.00000 5.0000 2 8 6 12 10 
# 5 2.000000 5.000000 4.00000 3.00000 6.0000 4 10 8 6 12 
# 6 3.000000 2.000000 5.00000 4.00000 7.0000 6 4 10 8 14 

和我的距離矩陣

dist(test) 
#    1   2   3   4   5 
# 2 471.181726             
# 3 1019.716766 714.553473          
# 4 425.980071 427.331552 1102.568122       
# 5 428.325768 426.014214 1101.559808 8.062258    
# 6 427.427492 425.995993 1100.387152 10.000000 8.062258 

我有層次聚類(hclust(dist(test))),我想放入一個組中,例如距離低於10的所有行(這裏例如是4和5和6)

但實際上,我的data.frame比這個大得多,我想要做自動盟友。

+1

目前還不清楚你想達到什麼。 – 2015-11-05 10:50:23

+0

請說明究竟需要做什麼。 – JRodDynamite

回答

0

首先:保存您的層次聚類。

tree <- hclust(dist(test), method="complete") 

注意我選擇了complete聯動方法。你可以閱讀更多關於爲什麼它是如何工作HERE

二:砍倒在想要的高度(在你的情況,這是10):

cutree(tree, h=10) 
# 1 2 3 4 5 6 
# 1 2 3 4 4 4 

正如你可以看到這個返回集羣的載體。在這種情況下,4,5,6全部與您想要的相同羣集4。選擇method="complete"確保一個羣集中所有點之間的最大距離是您用h=10指定的值。