Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
放大R中的群集/热图_R_Heatmap_Hierarchical Clustering - Fatal编程技术网

放大R中的群集/热图

放大R中的群集/热图,r,heatmap,hierarchical-clustering,R,Heatmap,Hierarchical Clustering,我有一个问题,关于在我的数据集中找到的集群上缩放。我想创建尽可能多的新矩阵作为给定数量的集群,因为它返回。具体而言,我不确定如何回到数据中,并将感兴趣的子群体剔除。我知道我能做到: mycl <- cutree(hr, 2); mycl我想到两件事: 解决方案1: # Convert to a dendrogram object hor.dendro <- as.dendrogram(hr) # Get values for the first branch m.1 <- m

我有一个问题,关于在我的数据集中找到的集群上缩放。我想创建尽可能多的新矩阵作为给定数量的集群,因为它返回。具体而言,我不确定如何回到数据中,并将感兴趣的子群体剔除。我知道我能做到:

mycl <- cutree(hr, 2);

mycl我想到两件事:

解决方案1:

# Convert to a dendrogram object
hor.dendro <- as.dendrogram(hr)
# Get values for the first branch
m.1 <- m[unlist(hor.dendro[[1]]),]
这将返回(使用2个组调用
cutree


您可以使用
[[]]
操作符访问结果,例如:
集群[[2]]
以获取第二个集群。

错误:未找到对象“hr”
您可以使问题重现吗?变量名称中有错误,我已修复它,请检查代码是否符合预期(我还更改了颜色,因为您没有包含自定义颜色的定义)完成了!现在我想知道的是,看看左边有两个集群,我想说黄色的一个作为矩阵m_1,粉色的一个作为矩阵m_2。我的代码现在应该可以工作了。thx@Nico你会做些什么统计比较来查看功能Uniqune..我在考虑chisqr比较,但不确定什么和如何实现。真的要看情况而定关于具体的问题。你想比较的是什么?这些值总是0/1还是它们可以有其他值?我假设某种距离测量可以,但我不是专家。另外,请注意,你不能保证有相同大小的簇,所以这可能是一个问题…你可能想就此问一个单独的问题,当然是有些人在这方面比我强!
library(gplots)
mycl <- cutree(hr, 2); 
mycolhc <- rainbow(length(unique(mycl)), start=0.1, end=0.9); 
mycolhc <- mycolhc[as.vector(mycl)]
myheatcol <- redgreen(75)

# Creates heatmap for entire data set
heatmap.2(
           m, 
           Rowv=as.dendrogram(hr), 
           Colv=as.dendrogram(hc), 
           col=myheatcol, 
           scale="row", 
           density.info="none", 
           trace="none", 
           RowSideColors=mycolhc, 
           cexCol=0.6, 
           labRow=NA
           )
# Convert to a dendrogram object
hor.dendro <- as.dendrogram(hr)
# Get values for the first branch
m.1 <- m[unlist(hor.dendro[[1]]),]
# Cut the tree in 2
tree.cut <- cutree(hr, 2)
# Get the ids for cluster #1
clust.1 <- which(tree.cut==1)
# Get the values from m
m.1 <- m[clust.1,]
clusters <- lapply(unique(tree.cut), function(grp)
       {
       m[which(tree.cut==grp),]
       })
[[1]]
  1 2 3 4 5
A 0 0 0 0 1
B 0 0 0 1 1
C 0 0 1 1 1
D 0 0 1 1 0
I 0 1 1 1 0

[[2]]
  1 2 3 4 5
E 1 0 0 0 0
F 1 1 1 0 0
G 0 1 1 0 0
H 0 1 1 0 0
J 1 1 1 0 1