Globálne nastavenie Chunkov

knitr::opts_chunk$set(
  echo = TRUE,
  message = FALSE,
  warning = FALSE
)

Numerické hodnoty a vektory

Simulácia náhodných dát

set.seed(42)
data <- rnorm(100, mean = 50, sd = 10)  # 100 náhodných hodnôt ~ N(50,10)

summary(data)    # základné štatistiky
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   20.07   43.83   50.90   50.33   56.62   72.87
hist(data, main="Histogram hodnôt", col="skyblue")

Malé cvičenie

Vytvorte 50 náhodných hodnôt z rovnomerného rozdelenia na intervale [10, 20] a spočítajte, koľko z nich je väčších ako 15.

Riešenie:

set.seed(123)
u <- runif(50, min = 10, max = 20)
sum(u > 15)
## [1] 25

Logické hodnoty a podmienky

vek <- c(15, 18, 25, 70, 12, 40)
vek >= 18
## [1] FALSE  TRUE  TRUE  TRUE FALSE  TRUE
sum(vek >= 18)   # počet dospelých
## [1] 4

Malé cvičenie

Napíšte podmienku, ktorá určí, ktorí ľudia majú medzi 18 a 65 rokmi (t.j. sú v produktívnom veku).

Riešenie:

vek <- c(15, 18, 25, 70, 12, 40)
produkt_vek <- vek >= 18 & vek <= 65
vek[produkt_vek]
## [1] 18 25 40

Textové reťazce

Práca so slovami

veticka <- "Programovanie v R je veľmi flexibilné a zábavné"
slova <- strsplit(veticka, " ")[[1]]
length(slova)        # počet slov
## [1] 8
toupper(slova)       # všetky slová veľkými písmenami
## [1] "PROGRAMOVANIE" "V"             "R"             "JE"           
## [5] "VEĽMI"         "FLEXIBILNÉ"    "A"             "ZÁBAVNÉ"
grep("R", slova)     # pozícia slova "R"
## [1] 3

Malé cvičenie

Napíšte vetu podľa seba a:
1. rozdeľte ju na slová,
2. spočítajte počet písmen vo všetkých slovách dokopy,
3. vymeňte jedno slovo za iné pomocou gsub().

Riešenie:

moj_text <- "Učenie R Markdown je veľmi užitočné a zaujímavé"
slova2 <- strsplit(moj_text, " ")[[1]]
# 1. rozdelenie
slova2
## [1] "Učenie"    "R"         "Markdown"  "je"        "veľmi"     "užitočné" 
## [7] "a"         "zaujímavé"
# 2. počet písmen dokopy
sum(nchar(slova2))
## [1] 40
# 3. zmena slova "užitočné" na "praktické"
novy_text <- gsub("užitočné", "praktické", moj_text)
novy_text
## [1] "Učenie R Markdown je veľmi praktické a zaujímavé"

Môj návrh použitia novinky

Vytvoríme vlastnú funkciu, ktorá z textu spraví štatistiku slov:

analyzuj_text <- function(txt) {
  slova <- strsplit(txt, " ")[[1]]
  dlzky <- nchar(slova)
  list(
    pocet_slov = length(slova),
    priemerna_dlzka = mean(dlzky),
    najdlhsie_slovo = slova[which.max(dlzky)]
  )
}

analyzuj_text("Dnes sa učíme programovať v jazyku R Markdown")
## $pocet_slov
## [1] 8
## 
## $priemerna_dlzka
## [1] 4.75
## 
## $najdlhsie_slovo
## [1] "programovať"

Matice

Vytvorenie matíc

m <- matrix(1:12, nrow = 3, ncol = 4)            # hodnoty sú zadavane po stlpcoch
m_byrow <- matrix(1:12, nrow = 3, byrow = TRUE)  # hodnoty su zadavane po riadkoch
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