Číselné hodnoty a výpočty

# priradenie čísel
x <- 12
y <- 5
z <- 4.27

# aritmetika
sucet_xy         <- x + y
rozdiel_xy       <- x - y
nasobenie_xy     <- x * y
delenie_xy       <- x / y
mocnina_x2       <- x ^ 2
celo_delenie     <- x %/% y      # celé delenie
zvysok_po_deleni <- x %% y       # zvyšok po delení

# zaokrúhľovanie
round_z <- round(z, digits = 1)
ceil_z  <- ceiling(z)
floor_z <- floor(z)

# výpis výsledkov
x; y; z
## [1] 12
## [1] 5
## [1] 4.27
sucet_xy; rozdiel_xy; nasobenie_xy; delenie_xy
## [1] 17
## [1] 7
## [1] 60
## [1] 2.4
mocnina_x2; celo_delenie; zvysok_po_deleni
## [1] 144
## [1] 2
## [1] 2
round_z; ceil_z; floor_z
## [1] 4.3
## [1] 5
## [1] 4

Malé cvičenie 1

## Úloha: vypočítaj ((20^2 + 4) / 6) a zaokrúhli na 2 desatinné miesta.

vysledok_raw <- (20^2 + 4) / 6
vysledok_raw
## [1] 67.33333
round(vysledok_raw, digits = 2)
## [1] 67.33

Textové (reťazcové) hodnoty

first_name <- "Patrícia"
last_name  <- "Čambálová"

cele_meno       <- paste(first_name, last_name)      # s medzerou
cele_meno_bez   <- paste0(first_name, last_name)     # bez medzery
ovoce_csv       <- paste("mango", "papaya", "guava", sep = ";")

first_name; last_name
## [1] "Patrícia"
## [1] "Čambálová"
cele_meno; cele_meno_bez
## [1] "Patrícia Čambálová"
## [1] "PatríciaČambálová"
ovoce_csv
## [1] "mango;papaya;guava"
## časť: dĺžka textu a podreťazce

veta <- "R programming is fun"

dlzka          <- nchar(veta)
prvych_12      <- substr(veta, 1, 12)
od_15_do_konca <- substr(veta, 15, nchar(veta))

dlzka
## [1] 20
prvych_12
## [1] "R programmin"
od_15_do_konca
## [1] "is fun"

Malé cvičenie 2

## Úloha: pracuj s textom "Ayurveda"
## 1. Spočítaj počet znakov.
## 2. Vezmi prvé tri písmená.

slovo <- "Ayurveda"

nchar(slovo)
## [1] 8
substr(slovo, 1, 3)
## [1] "Ayu"

Logické hodnoty a porovnávanie

p <- TRUE
q <- FALSE

not_p  <- !p
and_pq <- p & q
or_pq  <- p | q
xor_pq <- xor(p, q)

not_p
## [1] FALSE
and_pq
## [1] FALSE
or_pq
## [1] TRUE
xor_pq
## [1] TRUE
## porovnávanie čísel a textu

mensie      <- 10 < 3
vacsi_rovne <- 10 >= 10
rovnake     <- "apple" == "apple"
ine         <- "apple" != "banana"
negacia     <- !FALSE

mensie
## [1] FALSE
vacsi_rovne
## [1] TRUE
rovnake
## [1] TRUE
ine
## [1] TRUE
negacia
## [1] TRUE
## kombinované logické výrazy

age <- 18

is_adult         <- age >= 18
is_student       <- TRUE
je_mlady_dospely <- (age >= 18 & age < 30)
je_mimo_interval <- (age < 10 | age > 70)

is_adult
## [1] TRUE
is_student
## [1] TRUE
je_mlady_dospely
## [1] TRUE
je_mimo_interval
## [1] FALSE

Malé cvičenie 3

## Úloha: teplota
## 1. Zisti, či je temp > 37.
## 2. Zisti, či je temp medzi 36.5 a 37.5 vrátane hraníc.

temp <- 37.9

temp > 37
## [1] TRUE
temp >= 36.5 & temp <= 37.5
## [1] FALSE

Môj návrh použitia novinky

## Toto je časť, kde ukazujem niečo naviac oproti bežným základom:
## - vyhľadanie textu v reťazci pomocou grepl()
## - zmena veľkých/malých písmen pomocou toupper()/tolower()
## - formátovaný text pomocou sprintf()

veta2 <- "Ayurveda supports natural balance"

# vyhľadanie časti textu
obsahuje_balance <- grepl("balance", veta2)
obsahuje_disease <- grepl("disease", veta2)

obsahuje_balance
## [1] TRUE
obsahuje_disease
## [1] FALSE
# zmena veľkých/malých písmen
toupper(veta2)
## [1] "AYURVEDA SUPPORTS NATURAL BALANCE"
tolower(veta2)
## [1] "ayurveda supports natural balance"
# formátovaný text
vek <- 23
sprava <- sprintf(
  "Meno: %s %s | Vek: %d rokov",
  first_name, last_name, vek
)

sprava
## [1] "Meno: Patrícia Čambálová | Vek: 23 rokov"