回答:
の評価の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
オブジェクトが欠落しているかどうかをテストするには、is.na(x)
ではなくを使用しますx == NA
。
関連するエラーも参照してください。
if / while(条件){のエラー:引数の長さがゼロです
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
NA
どちら側でも許容できません。私が定義した場合x = NA
、if (x == NA){ ... }
次に実行すると、実行時にパーサーがdoubleのequalsの左側を調べるときにこのエラーがスローされます。このエラーを修正するには、条件式のすべての変数がを使用してNAでないことを確認してくださいis.na(your_variable)
。