<- c(49, 39, 51, 73, 41)
alder ifelse(alder < 50, "yngre", "eldre")
[1] "yngre" "yngre" "eldre" "eldre" "yngre"
For å sammenligne og gjøre noe basert på en betingelse kan vi bruke ifelse()
. Vi må spesifisere betingelsen først, og så hva som skal returneres dersom betingelsen er sann, og så hva som skal returneres om betingelsen er usann.
<- c(49, 39, 51, 73, 41)
alder ifelse(alder < 50, "yngre", "eldre")
[1] "yngre" "yngre" "eldre" "eldre" "yngre"
Dette kan brukes for å lage nye variabler i et datasett:
library(tidyverse)
── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
✔ ggplot2 3.4.0 ✔ purrr 1.0.1
✔ tibble 3.1.8 ✔ dplyr 1.0.10
✔ tidyr 1.2.1 ✔ stringr 1.5.0
✔ readr 2.1.3 ✔ forcats 0.5.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
<- data.frame(id = 1:5, alder)
dt %>%
dt mutate(alder_kat = ifelse(alder < 50, "yngre", "eldre"))
id alder alder_kat
1 1 49 yngre
2 2 39 yngre
3 3 51 eldre
4 4 73 eldre
5 5 41 yngre
For å kontrollere store/lengre prosesser kan vi benytte if
og else
. Disse kan gå over flere linjer og ta formatet:
if (betingelsen){
gjør dette ...else {
}
gjøre dette istedenfor ... }
For eksempel:
if (all(dt$alder < 70)){
print("Alle IOer er under 70")
else {
} print("Alle IOer med alder 70+ er fjernet.")
%>%
dt filter(alder < 70)
}
[1] "Alle IOer med alder 70+ er fjernet."
id alder
1 1 49
2 2 39
3 3 51
4 5 41