Wie man eine ganze zahl (0) in r fängt (mit beispielen)


Wenn Sie die Funktion which() in R verwenden, erhalten Sie manchmal eine Ganzzahl(0) , die angibt, dass keines der Elemente in einem Vektor als TRUE ausgewertet wird.

Angenommen, wir verwenden den folgenden Code, um zu überprüfen, welche Elemente eines Vektors dem Wert 10 entsprechen:

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

Da keines der Elemente im Vektor gleich 10 ist, ist das Ergebnis eine Ganzzahl der Länge 0, geschrieben als Ganzzahl(0) in R.

Es ist wichtig zu beachten, dass eine Ganzzahl (0) kein Fehler ist, aber manchmal möchten Sie vielleicht einfach nur wissen, wann er auftritt.

Die folgenden Beispiele zeigen, wie eine Ganzzahl (0) in R erfasst wird.

Beispiel 1: Fangen Sie eine Ganzzahl (0) in R mit der Funktion identisch() ab

Der einfachste Weg, eine Ganzzahl (0) in R abzufangen, besteht darin, die Funktion identisch() wie folgt zu verwenden:

 #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

Da unser Ergebnis gleich integer(0) ist, gibt R TRUE zurück.

Dadurch wissen wir, dass das Ergebnis der Funktion which() eine Ganzzahl der Länge 0 ist.

Beispiel 2: Erfassen einer Ganzzahl (0) in R mithilfe der Funktion „if else“.

Eine andere Möglichkeit, eine Ganzzahl (0) abzufangen, besteht darin, eine if else-Funktion zu definieren, die etwas Bestimmtes zurückgibt, wenn eine Ganzzahl (0) auftritt.

Beispielsweise könnten wir die folgende Funktion definieren, um die Phrase „It’s an integer (0)“ zurückzugeben, wenn eine ganze Zahl (0) erscheint:

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

  else {
    return (data)
  }

}

Wir können dann diese Funktion verwenden:

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

Da x tatsächlich eine Ganzzahl (0) ist, gibt unsere Funktion den von uns angegebenen Satz zurück.

Und wenn x keine Ganzzahl(0) ist, gibt unsere Funktion einfach das Ergebnis der Funktion which() zurück:

 #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

Unsere Funktion gibt 3 und 4 zurück, da dies die Positionen der Vektorelemente sind, die dem Wert 4 entsprechen.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:

So schreiben Sie Ihre erste tryCatch()-Funktion in R
So erstellen Sie eine verschachtelte For-Schleife in R
So geben Sie den Wert einer Funktion in R zurück

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert