我已经尝试了clusGap
和fviz_gap_stat
;两者都需要调用hcut
函数,但是,这个函数不允许将Bray-Curtis作为度量来计算观测值之间的差异。因此,我尝试vegdist
并在命令中输入布雷-柯蒂斯矩阵,但没有成功。
用于估计聚类数的差距统计
量gap_stat <- clusGap(otu_matrix,FUN=hcut,hc_func="hclust",hc_method="ward.D",isdiss=TRUE,Braymatrix,K.max = 50, B = 500)
Clustering k = 1,2,..., K.max (= 50): ..
如果 (is.na(n( || n> 65536L( stop ("大小不能为 NA 也不能超过 65536"( 时出错: 需要真/假的地方缺少值'
这个问题已经很长时间了,但我遇到了同样的问题,hclust 需要一个 dist 对象,所以如果已经是一个对称距离矩阵,你可以使用,as.dist(otu_matrix)
如果矩阵很好,它应该可以工作。
gap_stat <- clusGap(as.dist(otu_matrix), FUN=hcut, hc_func="hclust", hc_method="ward.D", isdiss=TRUE, Braymatrix, K.max = 50, B = 500)