2011-06-10 186 views
2

我想對某些列(變量)進行聚類分析,比如var 5-var10。爲此,我在R中使用了pvclust。現在,我想將這一列的簇添加到實際的數據框中。任何人都可以幫我解決這個問題。我使用的代碼下面給出:在R中使用pvclust進行聚類分析

group <- sqldf("select cq14x1_1,cq14x1_2,cq14x1_3,cq14x1_4,cq14x1_5,cq14x1_6,cq14x1_7, from parma_1") 
fit_1 <- pvclust(group,method.hclust="ward",method.dist="euclidean") 
group_2 <- (fit_1,alpha=.90) 
+2

在包'pvclust'中讀取'pvclust'的幫助文件,在我看來,'pvclust'計算聚類的p值。下面的聚類實際上是使用'hclust'完成的。請參閱'?hclust'及其示例以獲取有關如何執行層次聚類分析的幫助。 – Andrie 2011-06-11 07:18:06

+0

-1使用sqldf的東西,可以做平凡和方式更快使用基地R ;-) – mbq 2011-06-12 16:14:35

+1

我使用sqldf,因爲我更舒適的使用sql查詢。我不知道你怎麼能爲某些偏好設置負面的標記? – Beta 2011-06-13 14:19:28

回答

0

如果問題加上一欄,一個數據幀,只需使用:

yourdataframe <- cbind(yourdataframe, newcolumn) 

如果這不是你的問題,嘗試澄清問題。

+0

其實我想將定義新集羣的列添加到主數據集中。我正在使用cbind選項。但不幸的是它是錯誤的。 newdataset = cbind(group,group_2)data.frame中的錯誤(...,check.names = FALSE):參數意味着行數不同:199,0 – Beta 2011-06-13 15:36:29

+0

@ user697363:呃...你沒有分配任何東西給'group2'你在代碼中放了一些括號,但是你沒有調用任何函數......所以它的長度爲0,你不能'將它'與數據幀'綁定'。 – nico 2011-06-13 15:43:19

+0

你能告訴我如何糾正這個問題。我想在當前數據集中添加一個新列,其中新列包含來自pvclust的集羣。我可以用hclust來做。但正如我上面提到的,我想用pvclust而不是hclust。 – Beta 2011-06-13 15:53:30

0

pvclust函數的輸出是一個包含hclust元素的對象(檢出部分Value)。 hclust基本上是聚類的樹形表示(描述爲here),並且可以被進一步饋送到產生組變量的函數cutree。看看cutree的文檔page。您需要這3個函數來生成原始數據的實際集羣成員資格,然後可以按照@nico的建議輕鬆添加到您的數據框中。

+0

謝謝戴維斯基! – Beta 2016-05-09 11:15:42

+0

很高興提供幫助。讓我們知道這是否能解決您的問題和/或引發新問題。 – davidski 2016-05-09 16:44:40