R에서 수정하는 방법: 인수 길이가 0입니다.


R을 사용할 때 발생할 수 있는 오류 메시지는 다음과 같습니다.

 Error in if (x < 10) {: argument is of length zero

이 오류는 일반적으로 R의 if 문에서 논리적 비교를 수행하려고 시도하지만 비교에 사용하는 변수의 길이가 0일 때 발생합니다.

길이가 0인 변수의 두 가지 예는 숫자() 또는 Character(0) 입니다.

다음 예에서는 실제로 이 오류를 해결하는 방법을 보여줍니다.

오류를 재현하는 방법

길이가 0인 R에서 다음과 같은 숫자 변수를 생성한다고 가정합니다.

 #create numeric variable with length of zero
x <- numeric()

이제 if 문 에서 이 변수를 사용한다고 가정해 보겠습니다 .

 #if x is less than 10, print x to console
if(x < 10 ) {
  x
}

Error in if (x < 10) {: argument is of length zero

우리가 정의한 변수의 길이가 0이기 때문에 오류가 발생합니다.

단순히 실수 값을 사용하여 숫자 변수를 생성했다면 if 문을 사용할 때 이 오류가 발생하지 않습니다.

 #create numeric variable
y <- 5

#if y is less than 10, print y to console
if(y < 10 ) {
  y
}

[1] 5

오류를 방지하는 방법

인수 길이가 0인 오류를 방지하려면 다음 논리를 사용하는 isTRUE 함수를 포함해야 합니다.

 is. logical (x) && length(x) == 1 && !is. na (x) && x

if 문에서 이 함수를 사용하면 변수를 값과 비교할 때 오류가 발생하지 않습니다.

 if(isTRUE(x) && x < 10 ) {
  x
}

오류를 수신하는 대신 isTRUE(x) 함수가 FALSE 로 평가되므로 출력이 수신되지 않습니다. 즉, x 값이 인쇄되지 않습니다.

추가 리소스

다음 튜토리얼에서는 R의 다른 일반적인 오류를 수정하는 방법을 설명합니다.

R에서 수정하는 방법: 인수에 다른 줄 수가 포함됩니다.
R에서 수정하는 방법: 사용하지 않는 인수를 선택하는 중 오류가 발생했습니다.
R에서 복구하는 방법: 교체 길이가 0입니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다