1. ホーム
  2. R

R: hclust(d, method = method)でのエラー : 外部関数呼び出しは NA/NaN/Inf(arg10) を持つことができません。

2022-01-22 19:12:58
<パス

Rのpheatmapパッケージを使ってヒートマップを描画する場合、欠損値を除去したり置換したりする必要があるケースに多く遭遇しますが、".Textを使用すると、欠損値を除去したり置換したりすることができます。 is.na() "エラーを報告し続けることがわかりました。

Error in hclust(d, method = method) : 
  External function calls cannot have NA/NaN/Inf(arg10)


長い間弄った結果、以下のコードで欠損値を置換しても、NAの値がうまく置換されないことが判明しました。

data1[is.na(data1)] <- 1


理由を教えてください。
元データの欠損値をNAに手動で置き換えた結果、以下のようになりました。
回避策
エクセルで手動入力したNA値を空白に置き換え、Rに入力するとRが自動的に空白をNAに置き換え、その時点で上記のコードに従って正常に実行されます。

追加です。
pheatmap()関数でグラフを描画すると、エラー "Error in hclust(d, method = method) :
外部関数呼び出しに NA/NaN/Inf(arg10)" を指定できません。

pheatmap(data1, scale = "row")


検査で判明したこと
pheatmap が scale="row" としたとき。
元データから空の行を削除することで問題は解決します。