Hoe een geheel getal (0) in r te vangen (met voorbeelden)
Soms, wanneer u de functie who() in R gebruikt, kunt u eindigen met een geheel getal(0) , wat aangeeft dat geen van de elementen in een vector TRUE oplevert.
Stel dat we de volgende code gebruiken om te controleren welke elementen van een vector gelijk zijn aan de waarde 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)
Omdat geen van de elementen in de vector gelijk is aan 10, is het resultaat een geheel getal met lengte 0, geschreven als geheel getal(0) in R.
Het is belangrijk op te merken dat een geheel getal (0) geen fout is, maar dat u soms gewoon wilt weten wanneer dit gebeurt.
De volgende voorbeelden laten zien hoe u een geheel getal (0) in R kunt vastleggen.
Voorbeeld 1: Vang een geheel getal (0) in R met behulp van de functie identiek().
De eenvoudigste manier om een geheel getal (0) in R te vangen, is door de functie identiek() als volgt te gebruiken:
#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
Omdat ons resultaat gelijk is aan integer(0) , retourneert R TRUE .
Dit laat ons weten dat het resultaat van de functie who() een geheel getal met lengte 0 is.
Voorbeeld 2: Een geheel getal (0) vangen in R met behulp van de if else-functie
Een andere manier om een geheel getal (0) te vangen, is door een if else-functie te definiëren die iets specifieks retourneert als een geheel getal (0) voorkomt.
We zouden bijvoorbeeld de volgende functie kunnen definiëren om de zinsnede „Het is een geheel getal (0)“ te retourneren als er een geheel getal (0) verschijnt:
#define function to catch integer(0) integer0_test <- function (data) { if (identical(data, integer(0))) { return (' It is an integer(0) ') } else { return (data) } }
We kunnen dan deze functie gebruiken:
#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)"
Omdat x inderdaad een geheel getal(0) is, retourneert onze functie de zin die we hebben opgegeven.
En als x geen geheel getal(0) is, retourneert onze functie eenvoudigweg het resultaat van de functie who():
#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
Onze functie retourneert 3 en 4 omdat dit de posities zijn van de vectorelementen die gelijk zijn aan de waarde 4.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe u uw eerste tryCatch()-functie schrijft in R
Hoe maak je een geneste For-lus in R
Hoe de waarde van een functie in R te retourneren