knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE
)
V tomto cvičení budem demonštrovať základné operácie s číslami,
textami, logickými hodnotami, vektormi a maticami.
Cieľom je pochopiť, ako sa tieto dátové typy v jazyku R používajú, a na
konci si ukážem aj svoju vlastnú „novinku“.
# Priradenie čísel do premenných
x <- 10
y <- 4.5
# Aritmetické operácie
sucet <- x + y
rozdiel <- x - y
nasobenie <- x * y
delenie <- x / y
mocnina <- x ^ 2
zvysok <- x %% 3
# Zaokrúhľovanie
round_y <- round(y)
ceil_y <- ceiling(y)
floor_y <- floor(y)
x; y
## [1] 10
## [1] 4.5
sucet; rozdiel; nasobenie; delenie; mocnina; zvysok
## [1] 14.5
## [1] 5.5
## [1] 45
## [1] 2.222222
## [1] 100
## [1] 1
round_y; ceil_y; floor_y
## [1] 4
## [1] 5
## [1] 4
Vypočítaj hodnotu výrazu:
\[\frac{(20^2 - 6)}{8}\]
(20^2 - 6) / 8
## [1] 49.25
first <- "Vanessa"
last <- "Vargová"
# Spojenie textov
full <- paste(first, last)
full_nospace <- paste0(first, last)
ovocie <- paste("jablko", "banán", "pomaranč", sep = ", ")
first; last; full; full_nospace; ovocie
## [1] "Vanessa"
## [1] "Vargová"
## [1] "Vanessa Vargová"
## [1] "VanessaVargová"
## [1] "jablko, banán, pomaranč"
text <- "R je super jazyk!"
nchar(text) # počet znakov
## [1] 17
substr(text, 1, 7) # podreťazec od 1. po 7. znak
## [1] "R je su"
p <- TRUE
q <- FALSE
!p # negácia
## [1] FALSE
p & q # AND
## [1] FALSE
p | q # OR
## [1] TRUE
xor(p, q) # exclusive OR
## [1] TRUE
5 < 10
## [1] TRUE
7 >= 8
## [1] FALSE
"cat" == "dog"
## [1] FALSE
"vanessa" != "vargova"
## [1] TRUE
!TRUE
## [1] FALSE
cislo <- 15
cislo > 10 & cislo < 20
## [1] TRUE
cislo < 0 | cislo > 30
## [1] FALSE
log_vec <- c(TRUE, FALSE, TRUE, TRUE)
log_vec
## [1] TRUE FALSE TRUE TRUE
v1 <- c(5, 10, 15, 20)
v2 <- 1:6
v3 <- seq(from = 0, to = 2, by = 0.4)
v4 <- rep(2, times = 5)
v5 <- runif(5)
v6 <- rnorm(5)
v1; v2; v3; v4; v5; v6
## [1] 5 10 15 20
## [1] 1 2 3 4 5 6
## [1] 0.0 0.4 0.8 1.2 1.6 2.0
## [1] 2 2 2 2 2
## [1] 0.65968699 0.48705756 0.08800322 0.72658836 0.52351541
## [1] 1.1751585 1.1611343 -0.4558581 -0.5194966 1.1891282
v <- c(2, 4, 6, 8)
v + 5
## [1] 7 9 11 13
v * 3
## [1] 6 12 18 24
(v + 1) / 2
## [1] 1.5 2.5 3.5 4.5
exp(v)
## [1] 7.389056 54.598150 403.428793 2980.957987
sum(c(1,2,3), c(4,5,6))
## [1] 21
crossprod(c(1,2,3), c(4,5,6))
## [,1]
## [1,] 32
c(1,2,3) * c(4,5,6)
## [1] 4 10 18
x <- c(3, 7, 2, 9, 12, 5)
x[1]
## [1] 3
x[2:4]
## [1] 7 2 9
x[-1]
## [1] 7 2 9 12 5
x[x > 6]
## [1] 7 9 12
which(x > 6)
## [1] 2 4 5
y <- c(1, NA, 4, NA, 9)
is.na(y)
## [1] FALSE TRUE FALSE TRUE FALSE
mean(y)
## [1] NA
mean(y, na.rm = TRUE)
## [1] 4.666667
z <- c(12, 8, 15, 6, 3)
mean(z)
## [1] 8.8
sd(z)
## [1] 4.764452
max(z)
## [1] 15
summary(z)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.0 6.0 8.0 8.8 12.0 15.0
sort(z)
## [1] 3 6 8 12 15
sort(z, decreasing = TRUE)
## [1] 15 12 8 6 3
Vytvor vektor moje_body s číslami 1 až 10 a spočítaj
súčet všetkých čísel väčších ako 5.
moje_body <- 1:10
sum(moje_body[moje_body > 5])
## [1] 40
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]
## [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,4,1,3), nrow = 2)
B <- matrix(c(5,6,7,8), nrow = 2)
A + B
## [,1] [,2]
## [1,] 7 8
## [2,] 10 11
A * B
## [,1] [,2]
## [1,] 10 7
## [2,] 24 24
A %*% B
## [,1] [,2]
## [1,] 16 22
## [2,] 38 52
t(A)
## [,1] [,2]
## [1,] 2 4
## [2,] 1 3
det(A)
## [1] 2
solve(A)
## [,1] [,2]
## [1,] 1.5 -0.5
## [2,] -2.0 1.0
C <- cbind(1:3, 4:6)
D <- rbind(1:3, 4:6)
C; D
## [,1] [,2]
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
M2 <- matrix(1:9, nrow = 3)
apply(M2, 1, sum)
## [1] 12 15 18
apply(M2, 2, mean)
## [1] 2 5 8
Vytvor maticu 4x4 s hodnotami 1..16 po riadkoch, spočítaj stĺpcové sumy a vypočítaj súčin matíc \(M^t M\).
M3 <- matrix(1:16, nrow = 4, byrow = TRUE)
colSums(M3)
## [1] 28 32 36 40
t(M3) %*% M3
## [,1] [,2] [,3] [,4]
## [1,] 276 304 332 360
## [2,] 304 336 368 400
## [3,] 332 368 404 440
## [4,] 360 400 440 480
Vytvorím jednoduchý graf, ktorý nebol v pôvodnom dokumente.
Ukážem stĺpcový graf z mojich výsledkov.
body <- c(88, 75, 95, 100)
predmety <- c("Matematika", "Štatistika", "Ekonómia", "R Markdown")
barplot(body,
names.arg = predmety,
col = "lightblue",
main = "Moje body z predmetov",
ylab = "Body")
V tomto cvičení som si precvičila prácu s rôznymi dátovými typmi v R
– číselnými, textovými aj logickými.
Vyskúšala som aj prácu s vektormi a maticami, výpočty a operácie nad
nimi.
Ako novinku som pridala jednoduchý graf, ktorým som si overila, že viem
kombinovať kód a vizualizáciu.
Na dnes je to odo mňa všetko, teším sa na ďalšie zadanie.