2011-06-10 91 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