Leer alles over de ifelse()-functie, inclusief de syntax, hoe je bepaalt of een getal even of oneven is, en tot slot een voorbeeld om te zien of een student geslaagd of gezakt is voor zijn/haar examen.
De functie 'ifelse()' is het alternatieve en verkorte formulier van de R if-else-instructie. Bovendien gebruikt deze de 'gevectoriseerde' techniek, wat de bewerking sneller maakt. Alle vectorwaarden worden in één keer als argument genomen in plaats van individuele waarden meerdere keren door te geven.
Syntax
De syntax van de functie 'ifelse()' in R is als volgt: ifelse(logical_expression, a , b)
Het bovenstaande argument in 'ifelse' geeft aan dat: 1.logical_expression: Geeft een invoervector aan, die op zijn beurt een vector van dezelfde grootte als uitvoer teruggeeft. 2. a: Voert uit wanneer logical_expression TRUE is. 3. b: Voert uit wanneer logical_expression FALSE is.
Voorbeeld (Oneven of Even)
Bekijk snel het onderstaande voorbeeld waarin de volgende code controleert of getallen oneven of even zijn. 'v' is de vector die een lijst met getallen bevat. In de 'ifelse'-functie controleert de uitdrukking 'v%%2==1' of de rest van elk getal in 'v' gelijk is aan één; als dat TRUE is, wordt "odd" geprint, anders bij FALSE wordt "even" geprint.
v = c(14,7,6,9,2)
ifelse(v %% 2 == 1,"odd","even")
'even'
'odd'
'even'
'odd'
'even'
Bovenstaande code geeft als uitvoer: 'even' 'odd' 'even' 'odd' 'even' De interne werking van de code hierboven produceert een logische vector als c(FALSE,TRUE,FALSE,TRUE,FALSE). De eerste parameter vormt een stringvector c("odd","odd","odd","odd","odd") en de tweede parameter produceert op zijn beurt de stringvector c("even','even","even","even","even"). Uiteindelijk worden de individuele vectorelementen die TRUE zijn gewijzigd in 'odd', terwijl de 'FALSE' veranderen in 'even'.
Voorbeeld (Geslaagd of Gezakt)
Onderstaand voorbeeld laat het gebruik van de functie 'ifelse()' zien in combinatie met een DataFrame. Als een student meer dan 40 punten scoort, wordt hij/zij beschouwd als 'Pass' (geslaagd), anders als 'Fail' (gezakt) voor een examen.
Laten we snel een Data Frame maken met een kolom "Student" met als invoervector ("Ron", "Jake", "Ava", "Sophia", "Mia"). Een andere kolom is "Marks", die een vector bevat met de waarden (35,75,45,30,85). Tot slot worden beide kolommen gecombineerd tot een data frame en opgeslagen in 'x'.
x <- data.frame("Student" = c("Ron","Jake","Ava","Sophia","Mia"),"Marks" = c(35,75,45,30,85))
str(x)
'data.frame': 5 obs. of 2 variables:
$ Student: Factor w/ 5 levels "Ava","Jake","Mia",..: 4 2 1 5 3
$ Marks : num 35 75 45 30 85
'data.frame': 5 obs. of 2 variables:
$ Student: Factor w/ 5 levels "Ava","Jake","Mia",..: 4 2 1 5 3
$ Marks : num 35 75 45 30 85
De bovenstaande code toont de structuur van een Data Frame met 'str(x)', waaruit blijkt dat er 5 observaties met 2 variabelen zijn, met de respectieve waarden van Student en Marks uitgeprint.
Student Marks Result
1 Ron 35 Fail
2 Jake 75 Pass
3 Ava 45 Pass
4 Sophia 30 Fail
5 Mia 85 Pass
In de bovenstaande code wordt 'x$Result' als variabele gebruikt om een nieuwe kolom 'Result' toe te voegen aan een Data Frame. De functie 'ifelse()' heeft als expressie 'x$"Marks">40', die de vectorwaarden uit Marks controleert en de 'Result' op 'Pass' zet wanneer Marks groter is dan 40, anders wordt de 'Result' 'Fail'.
Gefeliciteerd
Gefeliciteerd, je bent aan het einde van deze tutorial gekomen!
Je hebt geleerd over R's ifelse()-functie met de bijbehorende syntax, hoe je kunt bepalen of een getal oneven of even is, en tot slot met een voorbeeld om te zien of een student geslaagd of gezakt is voor een examen.
Wil je meer leren over R? Je vindt al onze R-bronnen hier.