Vektory

Vytvorenie vektorov

b1 <- 10:1                   # klesajúca postupnosť
b2 <- seq(2, 20, by = 2)      # párne čísla od 2 po 20
b3 <- rep(c(1, 0), times = 5) # opakujúci sa vzor
b4 <- runif(6, 5, 15)         # 6 čísel z intervalu [5,15]
b5 <- rnorm(6, mean = 0, sd = 1)
b1; b2; b3; b4; b5
##  [1] 10  9  8  7  6  5  4  3  2  1
##  [1]  2  4  6  8 10 12 14 16 18 20
##  [1] 1 0 1 0 1 0 1 0 1 0
## [1]  6.457955  9.754494 12.350799 14.556809 12.954036  6.853422
## [1] -2.5230657  1.1330321 -2.2776428  1.0072966 -0.9658459 -0.4864616

Operacie s vektormi

u <- c(3, 6, 9, 12)
u + 5
## [1]  8 11 14 17
u / 3
## [1] 1 2 3 4
u^2
## [1]   9  36  81 144
sum(u)
## [1] 30
c(1,2,3) * c(4,5,6)   # Hadamardov súčin
## [1]  4 10 18

Cvičenie 1.

Vytvor vektor t s číslami od 100 do 120 a vypočítaj aritmetický priemer všetkých nepárnych čísel.

t <- 100:120
mean(t[t %% 2 == 1])
## [1] 110

Matice

Vytvorenie matic

N <- matrix(1:20, nrow = 4, ncol = 5) 
N
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    5    9   13   17
## [2,]    2    6   10   14   18
## [3,]    3    7   11   15   19
## [4,]    4    8   12   16   20

Operacie s maticami

X <- matrix(c(2,4,6,8), nrow = 2)
Y <- matrix(c(1,3,5,7), nrow = 2)

X + Y
##      [,1] [,2]
## [1,]    3   11
## [2,]    7   15
X * Y
##      [,1] [,2]
## [1,]    2   30
## [2,]   12   56
X %*% Y
##      [,1] [,2]
## [1,]   20   52
## [2,]   28   76
t(X)
##      [,1] [,2]
## [1,]    2    4
## [2,]    6    8

Cvičenie 2.

Vytvorime maticu 4x4 z čísel 1..16 a vypočítajme stĺpcové maximá a súčin matíc (N^tN).

N2 <- matrix(1:16, nrow = 4, byrow = TRUE)
colMaxs <- apply(N2, 2, max)
colMaxs
## [1] 13 14 15 16
t(N2) %*% N2
##      [,1] [,2] [,3] [,4]
## [1,]  276  304  332  360
## [2,]  304  336  368  400
## [3,]  332  368  404  440
## [4,]  360  400  440  480

Chybajuce hodnoty

y <- c(5, NA, 7, 9, NA, 11)
is.na(y)
## [1] FALSE  TRUE FALSE FALSE  TRUE FALSE
mean(y, na.rm = TRUE)
## [1] 8
na.omit(y)
## [1]  5  7  9 11
## attr(,"na.action")
## [1] 2 5
## attr(,"class")
## [1] "omit"

Cvičenie 3.

Spočítajme, koľko chýbajúcich hodnôt obsahuje vektor y.

sum(is.na(y))
## [1] 2

Zakladne štatistiky

q <- c(12, 15, 18, 7, 22, 9)
mean(q)
## [1] 13.83333
median(q)
## [1] 13.5
var(q)
## [1] 31.76667
summary(q)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    7.00    9.75   13.50   13.83   17.25   22.00
sort(q)
## [1]  7  9 12 15 18 22

Cvičenie 4.

Určime rozdiel medzi maximom a minimom vo vektore q.

max(q) - min(q)
## [1] 15

Moj navrh použitia novinky

Tentokrát použijeme ggplot2 na vizualizáciu namiesto klasického barplotu.

library(ggplot2)

df <- data.frame(
  meno = c("Kika", "Julka", "Magda", "Zuzka"),
  vysledok = c(72, 85, 90, 66)
)

ggplot(df, aes(x = meno, y = vysledok, fill = meno)) +
  geom_col() +
  geom_text(aes(label = vysledok), vjust = -0.5) +
  labs(title = "Výsledky študentov",
       x = "Meno", y = "Skóre") +
  theme_minimal()