2011-04-16 65 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