a <- 12
b <- 7
sucet <- a + b
rozdiel <- a - b
nasobok <- a * b
podiel <- a / b
sucet; rozdiel; nasobok; podiel
## [1] 19
## [1] 5
## [1] 84
## [1] 1.714286
Vytvorte dve čísla podľa vlastného výberu a vypočítajte:
druhú mocninu prvého čísla,
odmocninu druhého čísla,
zaokrúhlenie ich podielu na dve desatinné miesta.
c <- 15
d <- 9
druha_mocnina <- c^2
odmocnina <- sqrt(d)
podiel_cd <- round(c / d, 2)
druha_mocnina; odmocnina; podiel_cd
## [1] 225
## [1] 3
## [1] 1.67
meno <- "Oliver"
priezvisko <- "Slivka"
cele_meno <- paste(meno, priezvisko)
cele_meno
## [1] "Oliver Slivka"
Vytvorte tri reťazce: názov mesta, názov štátu a rok narodenia. Spojte ich do jednej vety (napr. „Narodil som sa v … v roku …“). Použite funkciu paste() alebo paste0().
mesto <- "Bratislava"
stat <- "Slovensko"
rok <- 2000
veta <- paste("Narodil som sa v", mesto, "v štáte", stat, "v roku", rok, ".")
veta
## [1] "Narodil som sa v Bratislava v štáte Slovensko v roku 2000 ."
x <- c(2, 5, 8, 11, 14)
log_vysledok <- x > 7
log_vysledok
## [1] FALSE FALSE TRUE TRUE TRUE
vek <- c(18, 25, 30, 40, 55)
vek_priemer <- mean(vek)
vek > vek_priemer
## [1] FALSE FALSE FALSE TRUE TRUE
Zistite, koľko prvkov v zadanom vektore je menších ako 30 rokov. Použite funkciu sum() na logické hodnoty.
mensie_ako_30 <- sum(vek < 30)
mensie_ako_30
## [1] 2
V pôvodnom dokumente nebolo použité vyhľadávanie indexov. Ukážme si, ako môžeme nájsť pozície prvkov, ktoré spĺňajú určitú podmienku.
cisla <- c(3, 9, 12, 4, 20, 7)
pozicie <- which(cisla > 10)
pozicie
## [1] 3 5
cisla[pozicie]
## [1] 12 20
Funkcia which() nám umožní získať indexy prvkov vo vektore, ktoré spĺňajú podmienku (napr. väčšie ako 10).
Vytvorte maticu veľkosti 5×3 s hodnotami 1–15 (po stĺpcoch). Spočítajte: súčet po riadkoch, priemer po stĺpcoch, a vytvorte nový vektor, ktorý obsahuje maximálnu hodnotu v každom riadku.
M2 <- matrix(1:15, nrow = 5)
M2
## [,1] [,2] [,3]
## [1,] 1 6 11
## [2,] 2 7 12
## [3,] 3 8 13
## [4,] 4 9 14
## [5,] 5 10 15
apply(M2, 1, sum) # suma po riadkoch
## [1] 18 21 24 27 30
apply(M2, 2, mean) # priemer po stĺpcoch
## [1] 3 8 13
apply(M2, 1, max) # maximum v každom riadku
## [1] 11 12 13 14 15
Vytvorte dve 3×3 matice A a B s náhodnými číslami od 0 do 10. Následne: nahraďte diagonálu matice A číslom 0, vypočítajte súčin zistite, ktorá matica má väčší súčet všetkých prvkov.
set.seed(2025)
A <- matrix(runif(9, 0, 10), nrow = 3)
B <- matrix(runif(9, 0, 10), nrow = 3)
A; B
## [,1] [,2] [,3]
## [1,] 7.326202 4.984323 8.984003
## [2,] 4.757614 7.802845 1.278527
## [3,] 5.142159 5.042522 6.446721
## [,1] [,2] [,3]
## [1,] 5.695311 6.5435753 8.573432
## [2,] 4.353166 0.2383565 3.650603
## [3,] 9.523265 4.6812288 3.655750
diag(A) <- 0 # nahradenie diagonály nulami
A
## [,1] [,2] [,3]
## [1,] 0.000000 4.984323 8.984003
## [2,] 4.757614 0.000000 1.278527
## [3,] 5.142159 5.042522 0.000000
A_tB <- t(A) %*% B # súčin A^T B
A_tB
## [,1] [,2] [,3]
## [1,] 69.68082 25.20563 36.16660
## [2,] 76.40853 56.22049 61.16694
## [3,] 56.73233 59.09225 81.69113
sum_A <- sum(A)
sum_B <- sum(B)
if (sum_A > sum_B) {
cat("Matica A má väčší súčet prvkov.\n")
} else if (sum_A < sum_B) {
cat("Matica B má väčší súčet prvkov.\n")
} else {
cat("Obe matice majú rovnaký súčet prvkov.\n")
}
## Matica B má väčší súčet prvkov.
Vytvorte maticu 4×4 s hodnotami 1–16 (po riadkoch). Vypíšte len diagonálne prvky a spočítajte ich súčet.
M <- matrix(1:16, nrow = 4, byrow = TRUE)
M
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
## [4,] 13 14 15 16
# diagonálne prvky
diag(M)
## [1] 1 6 11 16
# súčet diagonálnych prvkov
sum(diag(M))
## [1] 34