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와 동일한 벡터 요소의 위치이기 때문에 3 과 4를 반환합니다.
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
R에서 첫 번째 tryCatch() 함수를 작성하는 방법
R에서 중첩된 For 루프를 만드는 방법
R에서 함수의 값을 반환하는 방법