私はこのエラーメッセージを受け取りました:
Error in if (condition) { : missing value where TRUE/FALSE needed
または
Error in while (condition) { : missing value where TRUE/FALSE needed
それはどういう意味ですか、そしてどうすればそれを防ぐことができますか?
condition
の評価の結果、NA
が返されました。 if
条件式は、TRUE
またはFALSE
のいずれかの結果をもたなければなりません。
if (NA) {}
## Error in if (NA) { : missing value where TRUE/FALSE needed
これは計算の結果として偶然に起こる可能性があります。
if(TRUE && sqrt(-1)) {}
## Error in if (TRUE && sqrt(-1)) { : missing value where TRUE/FALSE needed
オブジェクトが不足しているかどうかをテストするには、x == NA
ではなく is.na(x)
を使用します。
関連エラーも参照してください。
if/while(条件)のエラー:引数が論理として解釈できない
if (NULL) {}
## Error in if (NULL) { : argument is of length zero
if ("not logical") {}
## Error: argument is not interpretable as logical
if (c(TRUE, FALSE)) {}
## Warning message:
## the condition has length > 1 and only the first element will be used
Nullまたは空の文字列をチェックするときにこれに遭遇しました
if (x == NULL || x == '') {
に変更しました
if (is.null(x) || x == '') {