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 —

Globálne nastavenie Chunkov

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
)

Úvod k základným operáciám v R

Tento notebook demonštruje základné operácie v jazyku R so:

Tam, kde je to užitočné, sú zahrnuté malé cvičenia.


Skaláre (jednočíselné hodnoty)

Numerické skaláre

# 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ľovanie

Malé cvičenie

Vypočítajte:

\[\frac{(20^2-10)}{5}\]

(20^2 - 10) / 5
## [1] 78

Text

Vytváranie textovými premennými a práca s nimi

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."

Dĺžka textového reťazca, podreťazec

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.


Logické (boolovské) hodnoty a premenné

Základy

p <- TRUE
q <- FALSE

!p
## [1] FALSE
p & q
## [1] FALSE
p | q
## [1] TRUE
xor(p, q)
## [1] TRUE

Logický výsledok porovnávania

5 < 9
## [1] TRUE
8 >= 8
## [1] TRUE
"apple" == "apple"
## [1] TRUE
"apple" != "orange"
## [1] TRUE
!FALSE
## [1] TRUE

Zložitejšie logické operácie

x <- 15
x > 10 & x < 20
## [1] TRUE
x < 0 | x > 100
## [1] FALSE

Zlučovanie viacerých log. premenných do vektora

vals <- c(TRUE, FALSE, TRUE, FALSE, TRUE)
vals
## [1]  TRUE FALSE  TRUE FALSE  TRUE

Numerické vektory

Generovanie vektorov

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

Aritmetické operácie s vektormi

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

Matematické operácie s 2 vektormi rovnakého rozmeru

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

Indexovanie a výber niektorych prvkov vektora

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

Práca s chýbajúcimi hodnotami

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ákladné štatistiky a usporiadanie prvkov vektora podľa veľkosti

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

Malé cvičenie

Vytvorte vektor w s číslami 1..20 a vypočítajte sumu všetkých párnych čísel.

w <- 1:30
sum(w[w %% 2 == 1])
## [1] 225

Matice

Vytvorenie matíc

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

Rozmery matice

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

Adresovanie prvkov matice

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

Maticové operácie

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

Zlučovanie vektorov do matíc

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

Vypočítanie zvolenej štatistiky po riadkoch (stĺpcoch) matice

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

Malé cvičenie

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