Úvod

Tento dokument demonštruje prácu s numerickými, logickými a textovými hodnotami v R. Obsahuje príklady aj malé cvičenia s riešením.

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

Skaláre (jednočíselné hodnoty)

Numerické skaláre

# Priradenie konštanty do premennej
a <- 12.4
b <- 5.7

# Arithmetic
sum_ab      <- a + b    
diff_ab     <- a - b 
prod_ab     <- a * b   
quot_ab     <- a / b        
power_ab    <- a ^ b  
mod_ab      <- a %% 3       
int_div_ab  <- a %/% 3

# Rounding
round_b   <- round(b)       
ceil_b    <- ceiling(b)     
floor_b   <- floor(b)     

a; b
[1] 12.4
[1] 5.7
sum_ab; diff_ab; prod_ab; quot_ab; power_ab; mod_ab; int_div_ab
[1] 18.1
[1] 6.7
[1] 70.68
[1] 2.175439
[1] 1708062
[1] 0.4
[1] 4
round_b; ceil_b; floor_b
[1] 6
[1] 6
[1] 5

Malé cvičenie

\[\frac{(36^2-4)}{8}\]

(36^2 - 4) / 8
[1] 161.5
6*5-2
[1] 28

Text

Vytváranie textovými premennými a práca s nimi

first <- "Beatrix"                      
last  <- "Tóthová"                          
full  <- paste(first, last)              
full_nospace <- paste0(first, last)       
csv_line <- paste("red", "blue", "purple", sep = ",")  
first; last; full; full_nospace; csv_line   
[1] "Beatrix"
[1] "Tóthová"
[1] "Beatrix Tóthová"
[1] "BeatrixTóthová"
[1] "red,blue,purple"

Dĺžka textového reťazca, podreťazec

x <- "R is great!"
nchar(x)                
[1] 11
substr(x, 1, 5)          
[1] "R is "

Logické (boolovské) hodnoty a premenné

Základy

m <- TRUE
n <- FALSE
!m                 
[1] FALSE
m & n              
[1] FALSE
m | n              
[1] TRUE
xor(m, n)           
[1] TRUE

Logický výsledok porovnávania

7 < 6
[1] FALSE
2 >= 9
[1] FALSE
"pink" == "pink"
[1] TRUE
"pink" != "blue"   
[1] TRUE
!TRUE
[1] FALSE

Zložitejšie logické operácie

x <- 25
x > 6 & x < 30      
[1] TRUE
x < 5 | x > 300     
[1] FALSE

Môj návrh použitia novinky

sample(1:10, 3)    # vyberie 3 náhodné čísla od 1 do 10
[1] 5 9 1
rep("Ahoj", 3)     # zopakuje reťazec 3 krát
[1] "Ahoj" "Ahoj" "Ahoj"
veta <- "R je skvelý jazyk na analýzu dát" 
grepl("skvelý", veta) # vráti TRUE, ak text obsahuje "skvelý"
[1] TRUE
LS0tCnRpdGxlOiAiQ3ZpxI1lbmllIOKAkyBOdW1lcmlja8OpLCBsb2dpY2vDqSBhIHRleHRvdsOpIGhvZG5vdHkiCmF1dGhvcjogIkJlYXRyaXggVMOzdGhvdsOhICA8YnI+CihzIHZ5dcW+aXTDrW0gQ2hhdEdQVCkiCmRhdGU6ICJPa3TDs2JlciAyMDI1IgpvdXRwdXQ6IAogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IHRydWUKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgdGhlbWU6IHVuaXRlZAogICAgaGlnaGxpZ2h0OiB0YW5nbwplZGl0b3Jfb3B0aW9uczogCiAgbWFya2Rvd246IAogICAgd3JhcDogNzIKLS0tCgojIMOadm9kCgpUZW50byBkb2t1bWVudCBkZW1vbsWhdHJ1amUgcHLDoWN1IHMgKipudW1lcmlja8O9bWksIGxvZ2lja8O9bWkgYSB0ZXh0b3bDvW1pKiogaG9kbm90YW1pIHYgUi4gT2JzYWh1amUgcHLDrWtsYWR5IGFqIG1hbMOpIGN2acSNZW5pYSBzIHJpZcWhZW7DrW0uIAoKYGBge3Igc2V0dXAsIGluY2x1ZGU9VFJVRSxlY2hvPVRSVUV9CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICBlY2hvID0gVFJVRSwKICBtZXNzYWdlID0gRkFMU0UsCiAgd2FybmluZyA9IEZBTFNFCikKYGBgCgojIFNrYWzDoXJlIChqZWRub8SNw61zZWxuw6kgaG9kbm90eSkKCiMjIE51bWVyaWNrw6kgc2thbMOhcmUKCmBgYHtyfQojIFByaXJhZGVuaWUga29uxaF0YW50eSBkbyBwcmVtZW5uZWoKYSA8LSAxMi40CmIgPC0gNS43CgojIEFyaXRobWV0aWMKc3VtX2FiICAgICAgPC0gYSArIGIgICAgCmRpZmZfYWIgICAgIDwtIGEgLSBiIApwcm9kX2FiICAgICA8LSBhICogYiAgIApxdW90X2FiICAgICA8LSBhIC8gYiAgICAgICAgCnBvd2VyX2FiICAgIDwtIGEgXiBiICAKbW9kX2FiICAgICAgPC0gYSAlJSAzICAgICAgIAppbnRfZGl2X2FiICA8LSBhICUvJSAzCgojIFJvdW5kaW5nCnJvdW5kX2IgICA8LSByb3VuZChiKSAgICAgICAKY2VpbF9iICAgIDwtIGNlaWxpbmcoYikgICAgIApmbG9vcl9iICAgPC0gZmxvb3IoYikgICAgIAoKYTsgYgpzdW1fYWI7IGRpZmZfYWI7IHByb2RfYWI7IHF1b3RfYWI7IHBvd2VyX2FiOyBtb2RfYWI7IGludF9kaXZfYWIKcm91bmRfYjsgY2VpbF9iOyBmbG9vcl9iCmBgYAoKCiMjIE1hbMOpIGN2acSNZW5pZQoKJCRcZnJhY3soMzZeMi00KX17OH0kJAoKYGBge3J9CigzNl4yIC0gNCkgLyA4CmBgYApgYGB7cn0KNio1LTIKCmBgYAoKIyBUZXh0IAoKIyMgVnl0dsOhcmFuaWUgdGV4dG92w71taSBwcmVtZW5uw71taSBhIHByw6FjYSBzIG5pbWkKCmBgYHtyfQpmaXJzdCA8LSAiQmVhdHJpeCIgICAgICAgICAgICAgICAgICAgICAgCmxhc3QgIDwtICJUw7N0aG92w6EiICAgICAgICAgICAgICAgICAgICAgICAgICAKZnVsbCAgPC0gcGFzdGUoZmlyc3QsIGxhc3QpICAgICAgICAgICAgICAKZnVsbF9ub3NwYWNlIDwtIHBhc3RlMChmaXJzdCwgbGFzdCkgICAgICAgCmNzdl9saW5lIDwtIHBhc3RlKCJyZWQiLCAiYmx1ZSIsICJwdXJwbGUiLCBzZXAgPSAiLCIpICAKZmlyc3Q7IGxhc3Q7IGZ1bGw7IGZ1bGxfbm9zcGFjZTsgY3N2X2xpbmUgICAKYGBgCgojIyBExLrFvmthIHRleHRvdsOpaG8gcmXFpWF6Y2EsIHBvZHJlxaVhemVjCgpgYGB7cn0KeCA8LSAiUiBpcyBncmVhdCEiCm5jaGFyKHgpICAgICAgICAgICAgICAgIApzdWJzdHIoeCwgMSwgNSkgICAgICAgICAgCmBgYAoKLS0tCgojIExvZ2lja8OpIChib29sb3Zza8OpKSBob2Rub3R5IGEgcHJlbWVubsOpCgojIyBaw6FrbGFkeQoKYGBge3J9Cm0gPC0gVFJVRQpuIDwtIEZBTFNFCiFtICAgICAgICAgICAgICAgICAKbSAmIG4gICAgICAgICAgICAgIAptIHwgbiAgICAgICAgICAgICAgCnhvcihtLCBuKSAgICAgICAgICAgCmBgYAoKIyMgTG9naWNrw70gdsO9c2xlZG9rIHBvcm92bsOhdmFuaWEKCmBgYHtyfQo3IDwgNgoyID49IDkKInBpbmsiID09ICJwaW5rIgoicGluayIgIT0gImJsdWUiICAgCiFUUlVFCmBgYAoKIyMgWmxvxb5pdGVqxaFpZSBsb2dpY2vDqSBvcGVyw6FjaWUKCmBgYHtyfQp4IDwtIDI1CnggPiA2ICYgeCA8IDMwICAgICAgCnggPCA1IHwgeCA+IDMwMCAgICAgCmBgYAojIE3DtGogbsOhdnJoIHBvdcW+aXRpYSBub3Zpbmt5CmBgYHtyfQpzYW1wbGUoMToxMCwgMykgICAgIyB2eWJlcmllIDMgbsOhaG9kbsOpIMSNw61zbGEgb2QgMSBkbyAxMApyZXAoIkFob2oiLCAzKSAgICAgIyB6b3Bha3VqZSByZcWlYXplYyAzIGtyw6F0Cgp2ZXRhIDwtICJSIGplIHNrdmVsw70gamF6eWsgbmEgYW5hbMO9enUgZMOhdCIgCmdyZXBsKCJza3ZlbMO9IiwgdmV0YSkgIyB2csOhdGkgVFJVRSwgYWsgdGV4dCBvYnNhaHVqZSAic2t2ZWzDvSIKCmBgYA==