【pheatmap热图scale报错】Error in hclust(d, method = method):NA/NaN/Inf in foreign function call (arg 11)

2023-04-27,,

初始数据类似如下:

填充下缺失值

data[data==0] <- NA
data[is.na(data)] <- min(data,na.rm = T)*0.01
pheatmap(log10(data)) pheatmap(data,scale = "row")

直接取log绘制不报错,但做scale时报错:

Error in hclust(d, method = method) :
NA/NaN/Inf in foreign function call (arg 11)

原因是数据中有标准差sd为0的行,做归一化时报错。pheatmap中做归一化采用的是scale方法:

因此如果要做scale,需要将这样的行去掉:

test <- data[apply(data, 1, function(x) sd(x)!=0),]
pheatmap(test,scale = "row")

Ref:

https://stackoverflow.com/questions/30350438/pheatmap-scale-row-giving-error-in-hclustd-method-method-na-nan-inf-in

https://zhuanlan.zhihu.com/p/30518877

【pheatmap热图scale报错】Error in hclust(d, method = method):NA/NaN/Inf in foreign function call (arg 11)的相关教程结束。

《【pheatmap热图scale报错】Error in hclust(d, method = method):NA/NaN/Inf in foreign function call (arg 11).doc》

下载本文的Word格式文档,以方便收藏与打印。