Použijme opět naši proměnnou ranniTep.
ranniTep <- c(65, 58, 72, NA, 66, 65, NA, 70) # NA je uvedeno u dnů, kdy se subjekt zapomněl změřit
Z vektoru můžeme vybrat jen určitou část podle indexů v hranatých závorkách [], např. první až třetí prvek – pro označení rozsahu použijeme dvojtečku.
ranniTep[1:3]
## [1] 65 58 72
Takový výsledek můžeme samozřejmě uložit opět do nějaké proměnné, a nebo poslat rovnou jako vstup funkci.
mean(ranniTep[1:3])
## [1] 65
Vybírat můžeme i na základě podmínky.
ranniTep >= 70 # pro každou hodnotu vrátí, zda splňuje podmínku. NA značí chybějící hodnotu, takže neví.
## [1] FALSE FALSE TRUE NA FALSE FALSE NA TRUE
which(ranniTep >= 70) # vrátí indexy položek, kde je podmínka splněna TRUE (takže FALSE a NA se ignorují).
## [1] 3 8
ranniTep[which(ranniTep >= 70)] # tyto indexy použijeme pro výběr hodnot, které chceme
## [1] 72 70
K dispozici máme pro tyto podmínky následující operátory:
Pozn. nebo má význam “alespoň jedna podmínka musí platit”, mohou tedy nastat situace, že platí obě, a je to také bráno jako TRUE.
ranniTep[which(ranniTep >= 70 | ranniTep < 60)] # vypíše hodnoty, které jsou větší nebo rovno 70, nebo menší než 60
## [1] 58 72 70
ranniTep[which(ranniTep > 60 & ranniTep < 70)] # hodnoty vyšší než 60 a zároveň nižší než 70
## [1] 65 66 65
© 6. 3. 2015 Tomáš Bořil, borilt@gmail.com