R에서 정수(0)를 잡는 방법(예제 포함)


때때로 R에서 which() 함수를 사용할 때 벡터의 어떤 요소도 TRUE로 평가되지 않음을 나타내는 정수(0) 로 끝날 수 있습니다.

예를 들어, 다음 코드를 사용하여 벡터의 어떤 요소가 값 10과 같은지 확인한다고 가정해 보겠습니다.

 #define vector of values
data <- c(1, 2, 4, 4, 5, 7, 8, 9)

#find elements in vector equal to 10
x <- which(data == 10 )

#view results
x

integer(0)

벡터의 어떤 요소도 10과 동일하지 않으므로 결과는 길이가 0인 정수이며 R에서는 정수(0) 로 작성됩니다.

정수(0)는 오류가 아니라는 점을 기억하는 것이 중요합니다. 하지만 때로는 오류가 언제 발생하는지 알고 싶을 수도 있습니다.

다음 예에서는 R에서 정수(0)를 캡처하는 방법을 보여줍니다.

예제 1: same() 함수를 사용하여 R에서 정수(0) 잡기

R에서 정수(0)를 잡는 가장 쉬운 방법은 다음과 같이 same() 함수를 사용하는 것입니다.

 #define vector of values
data <- c(1, 2, 4, 4, 5, 7, 8, 9)

#find elements in vector equal to 10
x <- which(data == 10 )

#test if x is identical to integer(0)
identical(x, integer(0))

[1] TRUE

결과가 정수(0) 이므로 R은 TRUE를 반환합니다.

이를 통해 which() 함수의 결과가 길이가 0인 정수임을 알 수 있습니다.

예제 2: if else 함수를 사용하여 R에서 정수(0) 잡기

정수(0)를 포착하는 또 다른 방법은 정수(0)가 발생하는 경우 특정 항목을 반환하는 if else 함수를 정의하는 것입니다.

예를 들어, 정수(0)가 나타나면 ” 정수(0) 입니다”라는 문구를 반환하도록 다음 함수를 정의할 수 있습니다.

 #define function to catch integer(0)
integer0_test <- function (data) {
 
  if (identical(data, integer(0))) {
    return (' It is an integer(0) ')
  }

  else {
    return (data)
  }

}

그런 다음 이 기능을 사용할 수 있습니다.

 #define vector of values
data <- c(1, 2, 4, 4, 5, 7, 8, 9)

#find elements in vector equal to 10
x <- which(data == 10 )

#use function to test if x is integer(0)
integer0_test(x)

[1] "It is an integer(0)"

x는 실제로 정수(0) 이기 때문에 우리 함수는 우리가 지정한 문장을 반환합니다.

그리고 x가 정수(0) 가 아닌 경우, 우리 함수는 단순히 which() 함수의 결과를 반환합니다.

 #define vector of values
data <- c(1, 2, 4, 4, 5, 7, 8, 9)

#find elements in vector equal to 4
x <- which(data == 4 )

#use function to test if x is integer(0)
integer0_test(x)

[1] 3 4

우리 함수는 값 4와 동일한 벡터 요소의 위치이기 때문에 34를 반환합니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 첫 번째 tryCatch() 함수를 작성하는 방법
R에서 중첩된 For 루프를 만드는 방법
R에서 함수의 값을 반환하는 방법

의견을 추가하다

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