Rで修正する方法: true/falseが必要な場所に値がありません


R で発生する可能性のあるエラーは次のとおりです。

 Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed

このエラーは、R のifステートメントで構文x == NAを使用して値を NA と比較すると発生します。

ifステートメントは TRUE または FALSE 値を期待するため、この関数は常に TRUE または FALSE を返すため、代わりにis.na(x)を使用する必要があります。

エラーを再現する方法

R のベクトル内の値のリストを反復処理し、ベクトル内に NA 値があるたびに「欠落」という単語を出力しようとしているとします。

 #define vector with some missing values
x <- c(2, NA, 5, 6, NA, 15, 19)

#loop through vector and print "missing" each time an NA value is encountered
for (i in 1:length(x)) {
 
 if (x[i] == NA) {
    print(' Missing ')
  }
}

Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed

構文x[i] == NAを使用したため、エラーが発生します。

エラーを修正する方法

次のように構文をis.na(x)に変更する必要があります。

 #define vector with some missing values
x <- c(2, NA, 5, 6, NA, 15, 19)

#loop through vector and print "missing" each time an NA value is encountered
for (i in 1:length(x)) {
 
 if (is. na (x[i])) {
    print(' Missing ')
  }
}

[1] “Missing”
[1] “Missing”

エラーは表示されず、ベクトル内で NA 値が見つかった場合は常に「missing」という単語を出力できることに注意してください。

追加リソース

次のチュートリアルでは、R の他の一般的なエラーを修正する方法について説明します。

修正方法: 強制によって導入された NA
修正方法: マトリックスのインデックスの数が正しくありません
修理方法: 交換するアイテムの数が交換の長さの倍数ではない

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です