1. Čísla
# Priradenie konštanty do premennej
a <- 15
b <- 10
a
[1] 15
[1] 10
# Arithmetic
sum_ab <- a + b # sucet
sum_ab
[1] 25
diff_ab <- a - b # rozdiel
diff_ab
[1] 5
prod_ab <- a * b # násobenie
prod_ab
[1] 150
quot_ab <- a / b # delenie
quot_ab
[1] 1.5
power_ab <- a ^ b # umocňovanie
power_ab
[1] 576650390625
mod_ab <- b %% 4 # zbytok po delení tromi (tzv modulo)
mod_ab
[1] 2
Malé cvičenie
Vypočítajte:
\[\frac{(18^2-9)}{4}\]
[1] 78.75
2. Text
first <- "Igor" # definovanie obsahu textovej premennej first
last <- "Németh" # definovanie obsahu text. premennej last
full <- paste(first, last) # spojenie dvoch text. premennych do jednej (s medzerou)
full_nospace <- paste0(first, last) # spojenie bez medzery
csv_line <- paste("jahoda", "jablko", "orech", sep = ",") # spojenie textov s oddelovacom ,
first; last; full; full_nospace; csv_line # bodkočiarka tu nahradzuje odskok na novy riadok
[1] "Igor"
[1] "Németh"
[1] "Igor Németh"
[1] "IgorNémeth"
[1] "jahoda,jablko,orech"
x <- "Tenis je najlepší šport"
nchar(x) # počet znakov v retazci "Tenis je najlepší šport"
[1] 23
[1] "Tenis je najlepší šport"
substr(x, 1, 13) # podreťazec od 1. do 23. znaku
[1] "Tenis je najl"
4. Novinka
Moja funkcia slúži na vytvorenie náhodného hesla
random_password <- function(length = 8) {
chars <- c(letters, LETTERS, 0:9)
paste(sample(chars, length, replace = TRUE), collapse = "")}
random_password()
[1] "Qq1gMnVP"
[1] "YMo9uQ8rh75f72Heb"
Numerické vektory
Generovanie vektorov
v1 <- c(3, 5, 7, 9)
v2 <- 1:7
v3 <- seq(from = 0, to = 3, by = 0.75)
v4 <- rep(7, times = 3)
v5 <- runif(6)
v6 <- rnorm(6)
v1; v2; v3; v4; v5; v6
[1] 3 5 7 9
[1] 1 2 3 4 5 6 7
[1] 0.00 0.75 1.50 2.25 3.00
[1] 7 7 7
[1] 0.3233644 0.5174744 0.2200254 0.6013817 0.4882949 0.3301193
[1] 2.3771993 0.1732159 -2.7503249 0.8917910 -0.2565110 -0.2768242
Aritmetické operácie s vektormi
[1] 10 11 12 13
[1] 6 9 12 15
[1] 2.5 3.0 3.5 4.0
[1] 7.389056 20.085537 54.598150 148.413159
[1] 18
crossprod(c(3,5,7),c(1,1,1))
[,1]
[1,] 15
[1] 3 5 7
Matematické operácie s 2 vektormi rovnakého rozmeru
[1] 5
[1] 6
[1] 3.323364 5.517474 7.220025 9.601382 11.488295 3.330119
Indexovanie a výber niektorych prvkov vektora
x <- c(5, 12, 3, 18, 7, 0, 21)
x[3]
[1] 3
[1] 5 12 3
[1] 5 12 3 7 0 21
[1] 12 18 7 21
[1] 2 4 7
Práca s chýbajúcimi hodnotami
y <- c(3, NA, 5, NA, 7)
is.na(y)
[1] FALSE TRUE FALSE TRUE FALSE
[1] NA
[1] 5
Základné štatistiky a usporiadanie prvkov vektora podľa
veľkosti
z <- c(12, 1, 6, 8, 10)
mean(z)
[1] 7.4
[1] 4.219005
[1] 12
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.0 6.0 8.0 7.4 10.0 12.0
[1] 1 6 8 10 12
sort(z, decreasing = TRUE)
[1] 12 10 8 6 1
Malé cvičenie
w <- 5:36
sum(w[w %% 5 == 0])
[1] 140
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
[1] 3 4
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
Adresovanie prvkov matice
[1] 4
[1] 7 8 9
[1] 2 5 8 11
[,1] [,2]
[1,] 4 7
[2,] 5 8
Maticové operácie
A <- matrix(c(3,7,8,9), nrow = 2)
B <- matrix(c(5,6,7,8), nrow = 2)
A + B # scitanie matic
[,1] [,2]
[1,] 8 15
[2,] 13 17
A * B # Hadamard product - nasobenie po zodpovedajucich prvkoch
[,1] [,2]
[1,] 15 56
[2,] 42 72
A %*% B # nasobenie matic
[,1] [,2]
[1,] 63 85
[2,] 89 121
t(A) # transpozicia matice A - vymena riadkov a stlpcov
[,1] [,2]
[1,] 3 7
[2,] 8 9
det(A) # determinant matice
[1] -29
solve(A) # inverzia matice (ak je matica regularna - teda inverzia sa da spocitat)
[,1] [,2]
[1,] -0.3103448 0.2758621
[2,] 0.2413793 -0.1034483
Zlučovanie vektorov do matíc
C <- cbind(1:3, 4:6) # - po stlpcoch
D <- rbind(1:3, 4:6) # - po riadkoch
C; D
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
Vypočítanie zvolenej štatistiky po riadkoch (stĺpcoch) matice
M <- matrix(1:12, nrow = 3)
M
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
apply(M, 1, sum) # suma po riadkoch
[1] 22 26 30
apply(M, 2, mean) # priemery po stĺpcoch
[1] 2 5 8 11
Malé cvičenie
M2 <- matrix(1:36, nrow = 6, byrow = TRUE)
colSums(M2)
[1] 96 102 108 114 120 126
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2166 2262 2358 2454 2550 2646
[2,] 2262 2364 2466 2568 2670 2772
[3,] 2358 2466 2574 2682 2790 2898
[4,] 2454 2568 2682 2796 2910 3024
[5,] 2550 2670 2790 2910 3030 3150
[6,] 2646 2772 2898 3024 3150 3276
LS0tCnRpdGxlOiAiWsOha2xhZG7DqSBvcGVyw6FjaWUgdiBSIgphdXRob3I6ICJJZ29yIE7DqW1ldGgiCm91dHB1dDogCiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICB0aGVtZTogdW5pdGVkCiAgICBoaWdobGlnaHQ6IHRhbmdvCmVkaXRvcl9vcHRpb25zOiAKICBtYXJrZG93bjogCiAgICB3cmFwOiA3MgotLS0KYGBge3Igc2V0dXAsIGluY2x1ZGU9VFJVRSxlY2hvPVRSVUV9CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICBlY2hvID0gVFJVRSwKICBtZXNzYWdlID0gRkFMU0UsCiAgd2FybmluZyA9IEZBTFNFCikKYGBgCiMgMS4gxIzDrXNsYQpgYGB7cn0KIyBQcmlyYWRlbmllIGtvbsWhdGFudHkgZG8gcHJlbWVubmVqCmEgPC0gMTUKYiA8LSAxMAphCmIKCiMgQXJpdGhtZXRpYwpzdW1fYWIgICAgICA8LSBhICsgYiAgICAgICAgIyBzdWNldApzdW1fYWIKZGlmZl9hYiAgICAgPC0gYSAtIGIgICAgICAgICMgcm96ZGllbApkaWZmX2FiCnByb2RfYWIgICAgIDwtIGEgKiBiICAgICAgICAjIG7DoXNvYmVuaWUKcHJvZF9hYgpxdW90X2FiICAgICA8LSBhIC8gYiAgICAgICAgIyBkZWxlbmllCnF1b3RfYWIKcG93ZXJfYWIgICAgPC0gYSBeIGIgICAgICAgICMgdW1vY8WIb3ZhbmllCnBvd2VyX2FiCm1vZF9hYiAgICAgIDwtIGIgJSUgNCAgICAgICAjIHpieXRvayBwbyBkZWxlbsOtIHRyb21pICh0enYgbW9kdWxvKQptb2RfYWIKYGBgCgoKIyMjIE1hbMOpIGN2acSNZW5pZQoKPiBWeXBvxI3DrXRhanRlOgoKJCRcZnJhY3soMTheMi05KX17NH0kJAoKYGBge3J9CigxOF4yIC0gOSkgLyA0CmBgYAoKLS0tCgojIDIuIFRleHQgCgpgYGB7cn0KZmlyc3QgPC0gIklnb3IiICAgICAgICAgICAgICAgICAgICAgICAjIGRlZmlub3ZhbmllIG9ic2FodSB0ZXh0b3ZlaiBwcmVtZW5uZWogZmlyc3QKbGFzdCAgPC0gIk7DqW1ldGgiICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRlZmlub3ZhbmllIG9ic2FodSB0ZXh0LiBwcmVtZW5uZWogbGFzdApmdWxsICA8LSBwYXN0ZShmaXJzdCwgbGFzdCkgICAgICAgICAgICAgICAjIHNwb2plbmllIGR2b2NoIHRleHQuIHByZW1lbm55Y2ggZG8gamVkbmVqIChzIG1lZHplcm91KQpmdWxsX25vc3BhY2UgPC0gcGFzdGUwKGZpcnN0LCBsYXN0KSAgICAgICAjIHNwb2plbmllIGJleiBtZWR6ZXJ5CmNzdl9saW5lIDwtIHBhc3RlKCJqYWhvZGEiLCAiamFibGtvIiwgIm9yZWNoIiwgc2VwID0gIiwiKSAgIyBzcG9qZW5pZSB0ZXh0b3YgcyBvZGRlbG92YWNvbSAsCmZpcnN0OyBsYXN0OyBmdWxsOyBmdWxsX25vc3BhY2U7IGNzdl9saW5lICAgIyBib2Rrb8SNaWFya2EgdHUgbmFocmFkenVqZSBvZHNrb2sgbmEgbm92eSByaWFkb2sgCnggPC0gIlRlbmlzIGplIG5hamxlcMWhw60gxaFwb3J0IgpuY2hhcih4KSAjIHBvxI1ldCB6bmFrb3YgIHYgcmV0YXpjaSAiVGVuaXMgamUgbmFqbGVwxaHDrSDFoXBvcnQiCngKc3Vic3RyKHgsIDEsIDEzKSAgICAgICAgICAjIHBvZHJlxaVhemVjIG9kIDEuIGRvIDEzLiB6bmFrdQpgYGAKCi0tLQoKIyAzLiBMb2dpY2vDqSBob2Rub3R5CgpgYGB7cn0KcCA8LSBUUlVFCnEgPC0gRkFMU0UKIXAgICAgICAgICAgICAgICAgICMgTk9UCnAgJiBxICAgICAgICAgICAgICAjIEFORApwIHwgcSAgICAgICAgICAgICAgIyBPUgp4b3IocCwgcSkgICAgICAgICAgIyBleGNsdXNpdmUgT1IgCiFwOyAhcTsgcCAmIHE7IHAgfCBxOyB4b3IocCwgcSkKYGBgCgojIDQuIE5vdmlua2EKTW9qYSBmdW5rY2lhIHNsw7rFvmkgbmEgdnl0dm9yZW5pZSBuw6Fob2Ruw6lobyBoZXNsYQpgYGB7cn0KcmFuZG9tX3Bhc3N3b3JkIDwtIGZ1bmN0aW9uKGxlbmd0aCA9IDgpIHsKICBjaGFycyA8LSBjKGxldHRlcnMsIExFVFRFUlMsIDA6OSkKICBwYXN0ZShzYW1wbGUoY2hhcnMsIGxlbmd0aCwgcmVwbGFjZSA9IFRSVUUpLCBjb2xsYXBzZSA9ICIiKX0KCnJhbmRvbV9wYXNzd29yZCgpCnJhbmRvbV9wYXNzd29yZCgxNykKYGBgCgojIE51bWVyaWNrw6kgdmVrdG9yeQoKIyMgR2VuZXJvdmFuaWUgdmVrdG9yb3YKCmBgYHtyfQp2MSA8LSBjKDMsIDUsIDcsIDkpCnYyIDwtIDE6NyAgICAgICAgICAgICAgICAgIAp2MyA8LSBzZXEoZnJvbSA9IDAsIHRvID0gMywgYnkgPSAwLjc1KSAgCnY0IDwtIHJlcCg3LCB0aW1lcyA9IDMpICAgIAp2NSA8LSBydW5pZig2KSAgICAgICAgICAgICAKdjYgPC0gcm5vcm0oNikgICAgICAgICAgICAgCnYxOyB2MjsgdjM7IHY0OyB2NTsgdjYKYGBgCgojIyBBcml0bWV0aWNrw6kgb3BlcsOhY2llIHMgdmVrdG9ybWkKCmBgYHtyfQp2IDwtIGMoMiwgMywgNCwgNSkKdiArIDggICAgICAgICAgIAp2ICogMyAgICAgICAgICAgIAoodiArIDMpIC8gMgpleHAodikgICAgICAgICAgIApzdW0oYygzLDUsNyksYygxLDEsMSkpICAgICAgICAgIApjcm9zc3Byb2QoYygzLDUsNyksYygxLDEsMSkpICAgIApjKDMsNSw3KSpjKDEsMSwxKSAgICAgICAgICAgICAgIApgYGAKCiMjIE1hdGVtYXRpY2vDqSBvcGVyw6FjaWUgcyAyIHZla3Rvcm1pIHJvdm5ha8OpaG8gcm96bWVydQoKYGBge3J9Cmxlbmd0aChjKDMsNSw3LDksMTEpKQpsZW5ndGgodjUpICAgICAgICAgICAgCmMoMyw1LDcsOSwxMSkgKyB2NSAgICAKYGBgCgojIyBJbmRleG92YW5pZSBhIHbDvWJlciBuaWVrdG9yeWNoIHBydmtvdiB2ZWt0b3JhCgpgYGB7cn0KeCA8LSBjKDUsIDEyLCAzLCAxOCwgNywgMCwgMjEpCnhbM10gICAgICAgICAgIAp4WzE6M10gICAgICAgICAKeFstNF0gICAgICAgICAKeFt4ID4gNl0gICAgICAKd2hpY2goeCA+IDEwKSAgCmBgYAoKIyMgUHLDoWNhIHMgY2jDvWJhasO6Y2ltaSBob2Rub3RhbWkKCmBgYHtyfQp5IDwtIGMoMywgTkEsIDUsIE5BLCA3KQppcy5uYSh5KQptZWFuKHkpICAgICAgICAgICAgICAgICAKbWVhbih5LCBuYS5ybSA9IFRSVUUpICAgCmBgYAoKIyMgWsOha2xhZG7DqSDFoXRhdGlzdGlreSBhIHVzcG9yaWFkYW5pZSBwcnZrb3YgdmVrdG9yYSBwb2TEvmEgdmXEvmtvc3RpCgpgYGB7cn0KeiA8LSBjKDEyLCAxLCA2LCA4LCAxMCkKbWVhbih6KSAgICAgICAgICAgICAgICAgCnNkKHopICAgICAgICAgICAgICAgICAgCm1heCh6KSAgICAgICAgICAgICAgICAgIApzdW1tYXJ5KHopICAgICAgICAgICAgICAKc29ydCh6KSAgICAgICAgICAgICAgICAgCnNvcnQoeiwgZGVjcmVhc2luZyA9IFRSVUUpICAKYGBgCgojIyBNYWzDqSBjdmnEjWVuaWUKCmBgYHtyfQp3IDwtIDU6MzYKc3VtKHdbdyAlJSA1ID09IDBdKQpgYGAKCi0tLQoKIyBNYXRpY2UKCiMjIFZ5dHZvcmVuaWUgbWF0w61jCgpgYGB7cn0KbSA8LSBtYXRyaXgoMToxMiwgbnJvdyA9IDMsIG5jb2wgPSA0KSAgICAgICAgICAgIAptX2J5cm93IDwtIG1hdHJpeCgxOjEyLCBucm93ID0gMywgYnlyb3cgPSBUUlVFKSAgCm07IG1fYnlyb3cKYGBgCgojIyBSb3ptZXJ5IG1hdGljZQoKYGBge3J9CmRpbShtKSAgICAgICAgICAgICAgICAgICAKbQpgYGAKCiMjIEFkcmVzb3ZhbmllIHBydmtvdiBtYXRpY2UKCmBgYHtyfQptWzEsIDJdICAgICAgCm1bICwgM10gICAgICAKbVsyLCBdICAgICAgIAptWzE6MiwgMjozXSAgCmBgYAoKIyMgTWF0aWNvdsOpIG9wZXLDoWNpZQoKYGBge3J9CkEgPC0gbWF0cml4KGMoMyw3LDgsOSksIG5yb3cgPSAyKQpCIDwtIG1hdHJpeChjKDUsNiw3LDgpLCBucm93ID0gMikKCkEgKyBCICAgICAgICAjIHNjaXRhbmllIG1hdGljCkEgKiBCICAgICAgICAjIEhhZGFtYXJkIHByb2R1Y3QgLSBuYXNvYmVuaWUgcG8gem9kcG92ZWRhanVjaWNoIHBydmtvY2gKQSAlKiUgQiAgICAgICMgbmFzb2JlbmllIG1hdGljCnQoQSkgICAgICAgICAjIHRyYW5zcG96aWNpYSBtYXRpY2UgQSAtIHZ5bWVuYSByaWFka292IGEgc3RscGNvdgpkZXQoQSkgICAgICAgIyBkZXRlcm1pbmFudCBtYXRpY2UKc29sdmUoQSkgICAgICMgaW52ZXJ6aWEgbWF0aWNlIChhayBqZSBtYXRpY2EgcmVndWxhcm5hIC0gdGVkYSBpbnZlcnppYSBzYSBkYSBzcG9jaXRhdCkKYGBgCgojIyBabHXEjW92YW5pZSB2ZWt0b3JvdiBkbyBtYXTDrWMgCgpgYGB7cn0KQyA8LSBjYmluZCgxOjMsIDQ6NikgICAjICAtIHBvIHN0bHBjb2NoIApEIDwtIHJiaW5kKDE6MywgNDo2KSAgICMgIC0gcG8gcmlhZGtvY2ggCkM7IEQKYGBgCgojIyBWeXBvxI3DrXRhbmllIHp2b2xlbmVqIMWhdGF0aXN0aWt5IHBvIHJpYWRrb2NoIChzdMS6cGNvY2gpIG1hdGljZQoKYGBge3J9Ck0gPC0gbWF0cml4KDE6MTIsIG5yb3cgPSAzKQpNCmFwcGx5KE0sIDEsIHN1bSkgICAjIHN1bWEgcG8gcmlhZGtvY2gKYXBwbHkoTSwgMiwgbWVhbikgICMgcHJpZW1lcnkgcG8gc3TEunBjb2NoCmBgYAoKIyMgTWFsw6kgY3ZpxI1lbmllCgpgYGB7cn0KTTIgPC0gbWF0cml4KDE6MzYsIG5yb3cgPSA2LCBieXJvdyA9IFRSVUUpCmNvbFN1bXMoTTIpCnQoTTIpICUqJSBNMgpgYGAKCi0tLQoKCgoKCgoK