knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE
)
Tento notebook demonštruje základné operácie v jazyku R so skalármi, textami, logickými hodnotami a vektormi. Na konci ukážeme aj vlastnú „inováciu“.
x <- 12
y <- 5.7
sucet <- x + y
rozdiel <- x - y
nasobok <- x * y
podiel <- x / y
umocnenie <- x ^ 2
modulo <- x %% 4
zaokruhlene <- round(y, 1)
hore <- ceiling(y)
dole <- floor(y)
sucet; rozdiel; nasobok; podiel; umocnenie; modulo
## [1] 17.7
## [1] 6.3
## [1] 68.4
## [1] 2.105263
## [1] 144
## [1] 0
zaokruhlene; hore; dole
## [1] 5.7
## [1] 6
## [1] 5
Vypočítajte:
\(\frac{(20^2+3)}{8}\)
(20^2 + 3) / 8
## [1] 50.375
meno <- "Lucia"
priezvisko <- "Horváthová"
cele_meno <- paste(meno, priezvisko)
cele_meno
## [1] "Lucia Horváthová"
Vytvorte dve textové premenné: názov mesta a krajiny, a spojte ich do jedného reťazca.
mesto <- "Košice"
krajina <- "Slovensko"
paste(mesto, "je druhé najväčšie mesto v", krajina)
## [1] "Košice je druhé najväčšie mesto v Slovensko"
p <- TRUE
q <- FALSE
!p
## [1] FALSE
p & q
## [1] FALSE
p | q
## [1] TRUE
xor(p, q)
## [1] TRUE
Vytvorte dve číselné premenné a overte, či sú obe väčšie ako 10.
a <- 15
b <- 7
(a > 10) & (b > 10)
## [1] FALSE
v1 <- 2:10
v2 <- seq(from = 0, to = 5, by = 0.5)
v3 <- rep(7, times = 6)
v4 <- runif(5, min = 0, max = 50)
v1; v2; v3; v4
## [1] 2 3 4 5 6 7 8 9 10
## [1] 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
## [1] 7 7 7 7 7 7
## [1] 3.274312 11.971808 38.227449 7.932694 17.469860
Vytvorte vektor čísel od 1 do 30 a vypočítajte súčet všetkých čísel deliteľných tromi.
w <- 1:30
sum(w[w %% 3 == 0])
## [1] 165
Na záver ukážeme príkazy, ktoré v pôvodnom dokumente neboli:
any() a all() – testovanie logických
podmienok na celom vektore,paste0() – spojenie textov bez medzier,unique() – odstránenie duplicitných prvkov,# any() a all()
v <- c(2, 4, 6, 8)
any(v > 5) # aspoň jedno číslo je väčšie ako 5?
## [1] TRUE
all(v %% 2 == 0) # sú všetky párne?
## [1] TRUE
# texty s paste0()
slovo1 <- "Data"
slovo2 <- "Science"
paste0(slovo1, slovo2)
## [1] "DataScience"
# unique()
vek <- c(18, 21, 18, 25, 21, 30)
unique(vek)
## [1] 18 21 25 30
# vlastná funkcia na test prvočísel
is_prime <- function(n) {
if (n <= 1) return(FALSE)
all(n %% 2:(n-1) != 0)
}
is_prime(17)
## [1] TRUE
is_prime(18)
## [1] FALSE