【问题标题】:Cluster Analysis using pvclust in R在 R 中使用 pvclust 进行聚类分析
【发布时间】:2011-09-12 20:24:26
【问题描述】:

我想对某些列(变量)进行聚类分析,比如 var 5-var10。为此,我在 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)

【问题讨论】:

  • 读取pvclust 包pvclust 的帮助文件,在我看来pvclust 会计算聚类的p 值。底层聚类实际上是使用hclust 完成的。有关如何进行层次聚类分析的帮助,请参阅 ?hclust 及其示例。
  • -1 用于将 sqldf 用于可以使用基础 R 轻松快速地制作的东西;-)
  • 我使用 sqldf 因为我更习惯使用 sql 查询。我不知道你怎么能对某些人的偏好进行负面标记?

标签: r cluster-analysis pvclust


【解决方案1】:

pvclust 函数的输出是一个包含hclust 元素的对象(查看Value 部分)。 hclust 基本上是集群的树表示(描述为here),并且可以进一步馈送到产生组成员身份的cutree 函数中。查看cutree 的文档page。您需要这 3 个函数来生成原始数据的实际集群成员资格,然后可以按照@nico 的建议轻松将其添加到您的数据框中。

【讨论】:

  • 很高兴为您提供帮助。如果这能解决您的问题和/或引发新问题,请告诉我们。
【解决方案2】:

如果问题是向数据框中添加列,只需使用:

yourdataframe <- cbind(yourdataframe, newcolumn)

如果这不是您的问题,请尝试澄清问题。

【讨论】:

  • 实际上我想将定义新集群的列添加到主数据集中。我正在使用 cbind 选项。但不幸的是,这是一个错误。 newdataset = cbind(group, group_2) data.frame(..., check.names = FALSE) 中的错误:参数暗示不同的行数:199, 0
  • @user697363: 嗯......你没有给group2分配任何东西你在代码中放了一些括号但你没有调用任何函数......所以它的长度为0,你不能cbind它到数据框。
  • 你能告诉我如何解决这个问题。我想在当前数据集中添加一个新列,其中新列包含来自 pvclust 的集群。我可以使用 hclust 做到这一点。但正如我上面提到的,我想使用 pvclust 而不是 hclust。
  • 罪魁祸首是group_2 &lt;- (fit_1,alpha=.90)...我不确定那应该怎么做...我从未使用过pvclust,但也许您想查看str(fit_1) 的结果。我假设fit_1 将包含有关集群的信息。
猜你喜欢
  • 2013-05-15
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 2012-02-24
  • 2020-09-12
  • 2013-04-19
相关资源
最近更新 更多