2011-04-16 32 views
8

我正在使用R軟件(R指揮官)對我的數據進行聚類。我有一個包含200行和大約800列的更小的數據子集。在圖形上嘗試kmeans集羣和繪圖時,出現以下錯誤。 「'princomp'只能用於多於變量的單位」R - 'princomp'只能用於多於變量的單位

然後我創建了10行和10列的測試文檔,但是當我添加一個額外的列時,我再次出現錯誤。 這是爲什麼?我需要能夠繪製我的羣集。當我在執行kmeans之後查看數據集時,可以看到顯示它們屬於哪個集羣的額外結果列。

有什麼我做錯了,我可以刪除這個錯誤,並繪製我的大樣本? 請幫忙,我的頭已經破了一個星期了。 謝謝你們。

+0

請問您能舉一個可重複的例子嗎? – aL3xa 2011-04-16 13:59:24

+0

@ aL3xa我的數據樣本將是 - 這是我的測試表下面。 3行11列。有沒有什麼辦法可以使用kmeans並使用R來繪製它們。'free ipod apple tech谷歌貓大老鼠你好狗球,0.174292915 0.232990001 0.174292915 0 0 0 0 0 0 0 0 0,0 0.349485002 0.261439373 0 0 0 0 0 0 0 0 ,0.174292915 0 0 0.232990001 0.232990001 0 0 0 0 0 0' – CoolSteve 2011-04-17 12:36:02

+0

請修改您的問題並將數據放在那裏。不在評論 – JohnP 2011-04-17 13:00:07

回答

21

問題是,您有比採樣點更多的變量,正在執行的主要組件分析失敗。

在幫助文件princomp它解釋(讀?princomp):

‘princomp’ only handles so-called R-mode PCA, that is feature 
extraction of variables. If a data matrix is supplied (possibly 
via a formula) it is required that there are at least as many 
units as variables. For Q-mode PCA use ‘prcomp’. 
+0

感謝您的答覆。這解釋了這個問題。有沒有辦法解決?你知道我是否可以繪製起訴kmeans的向量。我的數據看起來'免費的iPod蘋果科技谷歌貓巨大的老鼠你好狗球,0.174292915 0.232990001 0.174292915 0 0 0 0 0 0 0 0,0 0.349485002 0.261439373 0 0 0 0 0 0 0 0'每個逗號代表一個新的記錄,即有2記錄在這裏,這些詞是我的專欄標題 – CoolSteve 2011-04-17 12:39:26

+5

@CoolSteve你沒讀過你的幫助。閱讀'princomp'並按照它的說明**使用**'prcomp()'來代替。 – 2011-04-17 12:53:53

+0

謝謝Gavin,我現在看到了差異,我可以使用prcomp來繪製我的集羣。 Thansk爲所有答案傢伙。非常感激 – CoolSteve 2011-04-20 08:29:33

4

主成分分析是得以確認如果你有比數據點樣本較少。每個數據點將是它自己的主要組成部分。要使PCA正常工作,實例的數量應該明顯大於維度的數量。

簡單地說,你可以看看這樣的問題: 如果你有n尺寸,你可以使用都0或具有至多一個1矢量編碼多達n+1實例。這是最佳的,所以PCA會做到這一點!但這不是很有幫助。

0

您可以使用prcomp而不是princomp