如何将样本保持在有效的簇中?

how to keep samples in valid clusters?

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

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

然后我得到 table 如下:

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

现在,聚类中 0 的样本是离群值,我想将其从我的数据集中删除。 所以我 运行 下面的代码用于保留所有样本,除了样本在簇 0

keepSamples = (Cutreecluster_Sample==!0)

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

> table(keepSamples)
    keepSamples
    FALSE  TRUE 
     48    24 

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

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

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

尝试 !0 == 1FALSE == 0