[r] if / while 오류 (조건) {: TRUE / FALSE가 필요한 값이 없음

이 오류 메시지가 나타납니다.

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

개체가 없는지 테스트하려면 is.na(x)대신을 사용하십시오 x == NA.


관련 오류도 참조하십시오.

if / while 오류 (조건) {: 인수 길이가 0 임

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 == '') {


답변