Rでのエラー解決 「Error in if (条件式) { … } : missing value where TRUE/FALSE needed」

パソコン

はじめに

Rでは、間違った部分が存在すると、エラーが生じます。

最初の頃は、そのエラーだけで何日も費やすことがありますので、エラーとその解決策を今後の方のために残していきたいと思います。

R言語とはプログラミング言語の一つです。特に統計解析に強いとされます。さらにDeep learningの分野でも注目を浴びています。

Rでのエラーでよく出会うものを選んで、その原因と解決法を載せていきたいと思います。

Rをはじめよう生命科学のためのRStudio入門

Rのエラー原因 「Error in if (条件式) { … } : missing value where TRUE/FALSE needed」

今回のエラーは、多くの人が出会って困ってしますエラーです。

出てきたエラーは下記です。

「Error in if (条件式) { … } : missing value where TRUE/FALSE needed」

というエラーメッセージが出たので、同じように困っている方がいればと思い、解決までの方法を記載しておきます。

 

Error in if (条件式) { ... } : missing value where TRUE/FALSE needed エラーについて、具体例を示します。

例えば、以下のようなコードがあるとします。

x <- c(1, 2, NA, 4)

for (i in x) {
  if (i > 2) {
    print("Greater than 2")
  } else {
    print("Not greater than 2")
  }
}

このコードは、x ベクトルの各要素について、2より大きいかどうかを判定しようとしています。しかし、x ベクトルには NA という欠損値が含まれています。このため、i > 2 の条件式が NA を返すことがあり、上記のエラーが発生します。

Rでのエラー解決 「Error in if (条件式) { … } : missing value where TRUE/FALSE needed」

この問題を解決する方法の1つは、is.na() 関数を使用して、条件式で NA をチェックすることです。以下のように修正することができます。

x <- c(1, 2, NA, 4)

for (i in x) {
  if (is.na(i)) {
    print("Missing value")
  } else if (i > 2) {
    print("Greater than 2")
  } else {
    print("Not greater than 2")
  }
}

この修正により、NA が含まれている場合にも正しく処理され、エラーが発生しなくなります。

Rの基本的なことであれば、下記の本がオススメです。

2016年に第3版が出ました。少し古いですが、基本が網羅されています。レビューも高評価。

基本ネットで調べれば出てきますが、本として包括的なテキストを持つことは、便利で私は一冊持っておくのが役立っています。

立ち読みも出来ますので、下記リンクから立ち読みしてみてください。

The R Tips 第3版: データ解析環境Rの基本技・グラフィックス活用集

こちらも高評価かつ新しい本になります。特に初心者におすすめの内容です。

知りたい内容があるか、目次で確認してもらえるので、必要であるか確認してみてください。

Rをはじめよう生命科学のためのRStudio入門

コメント

タイトルとURLをコピーしました