Jak złapać liczbę całkowitą (0) w r (z przykładami)


Czasami, gdy użyjesz funkcji Which() w R, możesz otrzymać liczbę całkowitą(0) , która wskazuje, że żaden z elementów wektora nie ma wartości TRUE.

Załóżmy na przykład, że użyjemy poniższego kodu do sprawdzenia, które elementy wektora mają wartość 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)

Ponieważ żaden z elementów wektora nie jest równy 10, wynikiem jest liczba całkowita o długości 0, zapisana jako liczba całkowita (0) w R.

Należy pamiętać, że liczba całkowita (0) nie jest błędem, ale czasami warto po prostu wiedzieć, kiedy to nastąpi.

Poniższe przykłady pokazują, jak przechwycić liczbę całkowitą (0) w R.

Przykład 1: Złap liczbę całkowitą (0) w R za pomocą funkcji identycznej().

Najłatwiejszym sposobem przechwycenia liczby całkowitej (0) w R jest użycie funkcji identyczne() w następujący sposób:

 #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

Ponieważ nasz wynik jest równy integer(0) , R zwraca TRUE .

Dzięki temu wiemy, że wynikiem funkcji Which() jest liczba całkowita o długości 0.

Przykład 2: Łapanie liczby całkowitej (0) w R przy użyciu funkcji if else

Innym sposobem przechwycenia liczby całkowitej (0) jest zdefiniowanie funkcji if else, która zwraca coś konkretnego, jeśli wystąpi liczba całkowita (0) .

Na przykład możemy zdefiniować następującą funkcję, która zwróci frazę „To liczba całkowita (0)”, jeśli pojawi się liczba całkowita (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)
  }

}

Możemy wtedy skorzystać z tej funkcji:

 #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)"

Ponieważ x jest rzeczywiście liczbą całkowitą(0) , nasza funkcja zwraca określone przez nas zdanie.

A jeśli x nie jest liczbą całkowitą(0) , nasza funkcja po prostu zwróci wynik funkcji 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

Nasza funkcja zwraca 3 i 4 , ponieważ są to pozycje elementów wektora równe wartości 4.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak napisać swoją pierwszą funkcję tryCatch() w R
Jak utworzyć zagnieżdżoną pętlę For w R
Jak zwrócić wartość funkcji w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *