首页 > 解决方案 > 如何将样本保存在有效的集群中?

问题描述

我的 datExprSTLMS 中有 72 个样本作为基因表达数据集,并根据以下代码在该数据集上运行聚类:

new_hclust = hclust(dist(datExprSTLMS), method = "average")
Cutreecluster_Sample <- cutreeDynamic(dendro = new_hclust, minClusterSize = 5,
                                          method = "tree")

然后我得到如下表格:

table(Cutreecluster_Sample)
Cutreecluster_Sample
 0  1  2  3  4 
 1 24 22 18  7 

现在,集群中的样本 0 是异常值,我想将它从我的数据集中删除。所以我运行下面的代码来保留所有样本,除了样本在集群 0 中

keepSamples = (Cutreecluster_Sample==!0)

但是当我为 keepsamples 运行表时,我看到以下结果:

> table(keepSamples)
    keepSamples
    FALSE  TRUE 
     48    24 

正如您在中看到的,keepSamples我只有 24 个样本而不是 71 个样本。如果有人在代码级别指导我解决我的问题,我将不胜感激。

标签: rhierarchical-clustering

解决方案


更改keepSamples = (Cutreecluster_Sample==!0)keepSamples = (Cutreecluster_Sample!=0)

为什么?从右到左评估您的命令:!0是对 的逻辑否定0,相当于!FALSE在 R 中。因此!0等于TRUE。然后检查是否Cutreecluster_Sample等于TRUETRUE强制为数字1在 R 中。因此,您的检查实际上是TRUE如果样本在集群 1 中,而不是在集群 0 中。

尝试!0 == 1FALSE == 0


推荐阅读