首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用hclust中的变量创建向量

如何使用hclust中的变量创建向量
EN

Stack Overflow用户
提问于 2017-01-19 18:05:42
回答 1查看 165关注 0票数 0

我在一个应用于df的大脚本中使用hclust函数,如下例所示:

代码语言:javascript
复制
HClust <- hclust(d = dist(model.matrix(~-1 + A + B + C + D, df))^2, method = "centroid")

我只想在df中指定一次变量,例如。MgO,Zn,CaO...当我调用hclust()时,我希望它们是自动的。

我尝试创建一个向量,它将以我将用于hclust调用的格式包含dataframe变量。但是由此得到的树状图是不正确的。

代码语言:javascript
复制
  vars_for_clust <- paste(colnames(df),"+") 

它提供了以下内容:

代码语言:javascript
复制
vars_for_clust
[1] "A+" "B+" "C+"

并在hclust调用中使用此向量:

代码语言:javascript
复制
  HClust <- hclust(d = dist(model.matrix(~-1 + vars_for_clust, df))^2, method = "centroid")

但有些地方出了问题,因为即使它没有给出错误,所得到的树状图也是不正确的(所有垂直线都是相等的)

谢谢!!

示例数据位于:https://github.com/esteful/kaixo

EN

回答 1

Stack Overflow用户

发布于 2017-09-08 05:58:34

这里有两个问题: 1.使用paste;2.使用vars_for_clust作为model.matrix的参数。

要获得所需内容,应将整个公式构造为字符串,然后将其转换为公式-如下所示:

代码语言:javascript
复制
(FormString <- paste(c("~ -1", colnames(df)), collapse=" + "))
[1] "~ -1 + A + B + C"
HClust <- hclust(d = dist(model.matrix(as.formula(FormString), df))^2, method = "centroid")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41738961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档