【pheatmap熱圖scale報錯】Error in hclust(d, method = method):NA/NaN/Inf in foreign function call (arg 11)


初始數據類似如下:
image.png
填充下缺失值

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方法:
image.png
因此如果要做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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM