title: “Moje základné operácie v R” author: “Tvoje meno” date: “Marec 2026” output: html_notebook: toc: true toc_float: true theme: united highlight: tango editor_options: markdown: wrap: 72 —
V nižšie uvedenom Chunku je urobené základné globálne nastavenie Chunkov v celom Notebooku.
knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE
)
Tento notebook demonštruje základné operácie v jazyku R so:
Tam, kde je to užitočné, sú zahrnuté malé cvičenia.
# Priradenie konštanty do premennej
a <- 12
b <- 4.8
sum_ab <- a + b
diff_ab <- a - b
prod_ab <- a * b
quot_ab <- a / b
power_ab <- a ^ 2
mod_ab <- a %% 5
round_b <- round(b)
ceil_b <- ceiling(b)
floor_b <- floor(b)
a; b
## [1] 12
## [1] 4.8
sum_ab; diff_ab; prod_ab; quot_ab; power_ab; mod_ab
## [1] 16.8
## [1] 7.2
## [1] 57.6
## [1] 2.5
## [1] 144
## [1] 2
round_b; ceil_b; floor_b
## [1] 5
## [1] 5
## [1] 4
Poznámky
^ operátor umocňovania.%% je modulo, teda zbytok po delení,round(x, digits = 0) zaokrúhľovanie na určitý počet
desatinných miest (digits=). ak digits = 0, potom ide o celočíselné
zaokrúhľovanieVypočítajte:
\[\frac{(20^2-10)}{5}\]
(20^2 - 10) / 5
## [1] 78
first <- "Yuliia"
last <- "Holik"
full <- paste(first, last)
full_nospace <- paste0(first, last)
sentence <- paste("Studentka", first, "byva v Bratislave.")
first; last; full; full_nospace; sentence
## [1] "Yuliia"
## [1] "Holik"
## [1] "Yuliia Holik"
## [1] "YuliiaHolik"
## [1] "Studentka Yuliia byva v Bratislave."
x <- "R is very useful"
nchar(x)
## [1] 16
substr(x, 1, 6)
## [1] "R is v"
Tip: Knižnica stringr mnohé zaujímavé možnosti práce s textami, ale implicitné knižnice R pokrývajú väčšinu bežných potrieb páce s textami.
p <- TRUE
q <- FALSE
!p
## [1] FALSE
p & q
## [1] FALSE
p | q
## [1] TRUE
xor(p, q)
## [1] TRUE
5 < 9
## [1] TRUE
8 >= 8
## [1] TRUE
"apple" == "apple"
## [1] TRUE
"apple" != "orange"
## [1] TRUE
!FALSE
## [1] TRUE
x <- 15
x > 10 & x < 20
## [1] TRUE
x < 0 | x > 100
## [1] FALSE
vals <- c(TRUE, FALSE, TRUE, FALSE, TRUE)
vals
## [1] TRUE FALSE TRUE FALSE TRUE
v1 <- c(3, 6, 9, 12)
v2 <- 2:7
v3 <- seq(from = 1, to = 2, by = 0.2)
v4 <- rep(5, times = 4)
v5 <- runif(5)
v1; v2; v3; v4; v5
## [1] 3 6 9 12
## [1] 2 3 4 5 6 7
## [1] 1.0 1.2 1.4 1.6 1.8 2.0
## [1] 5 5 5 5
## [1] 0.7528420 0.3324491 0.8516969 0.1156586 0.9186497
v <- c(2, 4, 6, 8)
v + 5
## [1] 7 9 11 13
v * 3
## [1] 6 12 18 24
(v + 2) / 2
## [1] 2 3 4 5
sum(v)
## [1] 20
mean(v)
## [1] 5
a1 <- c(1, 2, 3, 4, 5)
a2 <- c(5, 4, 3, 2, 1)
a1 + a2
## [1] 6 6 6 6 6
a1 * a2
## [1] 5 8 9 8 5
crossprod(a1, a2)
## [,1]
## [1,] 35
x <- c(4, 11, 7, 20, 15, 2, 9)
x[1]
## [1] 4
x[2:5]
## [1] 11 7 20 15
x[-1]
## [1] 11 7 20 15 2 9
x[x > 10]
## [1] 11 20 15
which(x > 10)
## [1] 2 4 5
y <- c(2, NA, 6, NA, 10)
is.na(y)
## [1] FALSE TRUE FALSE TRUE FALSE
mean(y)
## [1] NA
mean(y, na.rm = TRUE)
## [1] 6
z <- c(12, 7, 3, 15, 9)
mean(z)
## [1] 9.2
sd(z)
## [1] 4.604346
max(z)
## [1] 15
summary(z)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.0 7.0 9.0 9.2 12.0 15.0
sort(z)
## [1] 3 7 9 12 15
sort(z, decreasing = TRUE)
## [1] 15 12 9 7 3
Vytvorte vektor
ws číslami 1..20 a vypočítajte sumu všetkých párnych čísel.
w <- 1:30
sum(w[w %% 2 == 1])
## [1] 225
m <- matrix(1:12, nrow = 3, ncol = 4)
m_byrow <- matrix(1:12, nrow = 3, byrow = TRUE)
m; m_byrow
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
dim(m)
## [1] 3 4
m
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
m[1, 2]
## [1] 4
m[, 3]
## [1] 7 8 9
m[2, ]
## [1] 2 5 8 11
m[1:2, 2:3]
## [,1] [,2]
## [1,] 4 7
## [2,] 5 8
A <- matrix(c(2, 1, 3, 4), nrow = 2)
B <- matrix(c(1, 5, 2, 6), nrow = 2)
A + B
## [,1] [,2]
## [1,] 3 5
## [2,] 6 10
A * B
## [,1] [,2]
## [1,] 2 6
## [2,] 5 24
A %*% B
## [,1] [,2]
## [1,] 17 22
## [2,] 21 26
t(A)
## [,1] [,2]
## [1,] 2 1
## [2,] 3 4
det(A)
## [1] 5
solve(A)
## [,1] [,2]
## [1,] 0.8 -0.6
## [2,] -0.2 0.4
C <- cbind(1:4, 5:8)
D <- rbind(1:4, 5:8)
C; D
## [,1] [,2]
## [1,] 1 5
## [2,] 2 6
## [3,] 3 7
## [4,] 4 8
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
M <- matrix(1:9, nrow = 3)
M
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
apply(M, 1, sum)
## [1] 12 15 18
apply(M, 2, mean)
## [1] 2 5 8
Vytvorte maticu 5x5 s hodnotami po riadkoch 1..25, vypočítajte stĺpcové sumy a súčin matíc \(M^t M\).
M2 <- matrix(1:16, nrow = 4, byrow = TRUE)
rowSums(M2)
## [1] 10 26 42 58
t(M2) %*% M2
## [,1] [,2] [,3] [,4]
## [1,] 276 304 332 360
## [2,] 304 336 368 400
## [3,] 332 368 404 440
## [4,] 360 400 440 480