Úvod k základným operáciám v R

Tento dokument stručne ukazuje prácu s číselnými, logickými a textovými hodnotami v R.

Obsahuje aj krátke cvičenia s ukážkovým riešením.


Skaláre (jednočíselné hodnoty)

Numerické skaláre

# Priradenie konštanty do premennej
a <- 12
b <- 6

# 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
[1] 6
sum_ab; diff_ab; prod_ab; quot_ab; power_ab; mod_ab; int_div_ab
[1] 18
[1] 6
[1] 72
[1] 2
[1] 2985984
[1] 0
[1] 4
round_b; ceil_b; floor_b
[1] 6
[1] 6
[1] 6

Malé cvičenie

\[\frac{(12^2-5)}{8}\]

(12^2 - 5) / 8
[1] 17.375

Text

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

first <- "Veronika"                       
last  <- "Rizsnyovszká"                          
full  <- paste(first, last)               
full_nospace <- paste0(first, last)       
csv_line <- paste("red", "white", "blue", sep = ",")  
first; last; full; full_nospace; csv_line   
[1] "Veronika"
[1] "Rizsnyovszká"
[1] "Veronika Rizsnyovszká"
[1] "VeronikaRizsnyovszká"
[1] "red,white,blue"

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

c <- TRUE
d <- FALSE
!c                 
[1] FALSE
c & d              
[1] FALSE
c | d              
[1] TRUE
xor(c, d)          
[1] TRUE

Logický výsledok porovnávania

22 < 59
[1] TRUE
33 >= 33
[1] TRUE
"red" == "red"
[1] TRUE
"red" != "white"   
[1] TRUE
!TRUE
[1] FALSE

Zložitejšie logické operácie

x <- 14
x > 8 & x < 30      
[1] TRUE
x < 0 | x > 150     
[1] FALSE
                    

Môj návrh použitia novinky

unique(1) # vyberie len jedinečné hodnoty 
[1] 1
dup <- c(1, 2, 2, 3, 3, 3) 
unique(dup)
[1] 1 2 3
tolower(1) # prevedie text na malé písmená 
[1] "1"
text <- "Programovanie v R" 
tolower(text)
[1] "programovanie v r"
toupper(1) # prevedie text na veľké písmená
[1] "1"
text <- "programovanie v r"
toupper(text)
[1] "PROGRAMOVANIE V R"
LS0tCnRpdGxlOiAiWsOha2xhZG7DqSBvcGVyw6FjaWUgdiBSIgphdXRob3I6ICJWZXJvbmlrYSBSaXpzbnlvdnN6a8OhICA8YnI+IChzIHZ5dcW+aXTDrW0gQ2hhdEdQVCkiCmRhdGU6ICJPa3TDs2JlciAyMDI1IgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICB0aGVtZTogY29zbW8KICAgIGhpZ2hsaWdodDoga2F0ZQogIHBkZl9kb2N1bWVudDoKICAgIHRvYzogdHJ1ZQplZGl0b3Jfb3B0aW9uczoKICBtYXJrZG93bjoKICAgIHdyYXA6IDcyCi0tLQoKIyDDmnZvZCBrIHrDoWtsYWRuw71tIG9wZXLDoWNpw6FtIHYgUgoKVGVudG8gZG9rdW1lbnQgc3RydcSNbmUgdWthenVqZSBwcsOhY3UgcyDEjcOtc2VsbsO9bWksIGxvZ2lja8O9bWkgYSB0ZXh0b3bDvW1pIGhvZG5vdGFtaSB2IFIuCgpPYnNhaHVqZSBhaiBrcsOhdGtlIGN2acSNZW5pYSBzIHVrw6HFvmtvdsO9bSByaWXFoWVuw61tLgoKLS0tCgojIFNrYWzDoXJlIChqZWRub8SNw61zZWxuw6kgaG9kbm90eSkKCiMjIE51bWVyaWNrw6kgc2thbMOhcmUKCmBgYHtyfQojIFByaXJhZGVuaWUga29uxaF0YW50eSBkbyBwcmVtZW5uZWoKYSA8LSAxMgpiIDwtIDYKCiMgQXJpdGhtZXRpYwpzdW1fYWIgICAgICA8LSBhICsgYiAgICAgICAgCmRpZmZfYWIgICAgIDwtIGEgLSBiICAgICAgICAKcHJvZF9hYiAgICAgPC0gYSAqIGIgICAgICAgIApxdW90X2FiICAgICA8LSBhIC8gYiAgICAgICAgCnBvd2VyX2FiICAgIDwtIGEgXiBiICAgICAgICAKbW9kX2FiICAgICAgPC0gYSAlJSAzCmludF9kaXZfYWIgIDwtIGEgJS8lIDMKCgojIFJvdW5kaW5nCnJvdW5kX2IgICA8LSByb3VuZChiKSAgICAgICAKY2VpbF9iICAgIDwtIGNlaWxpbmcoYikgICAgIApmbG9vcl9iICAgPC0gZmxvb3IoYikKCmE7IGIKc3VtX2FiOyBkaWZmX2FiOyBwcm9kX2FiOyBxdW90X2FiOyBwb3dlcl9hYjsgbW9kX2FiOyBpbnRfZGl2X2FiCnJvdW5kX2I7IGNlaWxfYjsgZmxvb3JfYgpgYGAKCgojIyBNYWzDqSBjdmnEjWVuaWUKCiQkXGZyYWN7KDEyXjItNSl9ezh9JCQKCmBgYHtyfQooMTJeMiAtIDUpIC8gOApgYGAKCi0tLQoKIyBUZXh0IAoKIyMgVnl0dsOhcmFuaWUgdGV4dG92w71taSBwcmVtZW5uw71taSBhIHByw6FjYSBzIG5pbWkKCmBgYHtyfQpmaXJzdCA8LSAiVmVyb25pa2EiICAgICAgICAgICAgICAgICAgICAgICAKbGFzdCAgPC0gIlJpenNueW92c3prw6EiICAgICAgICAgICAgICAgICAgICAgICAgICAKZnVsbCAgPC0gcGFzdGUoZmlyc3QsIGxhc3QpICAgICAgICAgICAgICAgCmZ1bGxfbm9zcGFjZSA8LSBwYXN0ZTAoZmlyc3QsIGxhc3QpICAgICAgIApjc3ZfbGluZSA8LSBwYXN0ZSgicmVkIiwgIndoaXRlIiwgImJsdWUiLCBzZXAgPSAiLCIpICAKZmlyc3Q7IGxhc3Q7IGZ1bGw7IGZ1bGxfbm9zcGFjZTsgY3N2X2xpbmUgICAKYGBgCgojIyBExLrFvmthIHRleHRvdsOpaG8gcmXFpWF6Y2EsIHBvZHJlxaVhemVjCgpgYGB7cn0KeCA8LSAiUiBpcyBncmVhdCEiCm5jaGFyKHgpICAgICAgICAgICAgICAgICAKc3Vic3RyKHgsIDEsIDUpICAgICAgICAgIApgYGAKLS0tCgojIExvZ2lja8OpIChib29sb3Zza8OpKSBob2Rub3R5IGEgcHJlbWVubsOpCgojIyBaw6FrbGFkeQoKYGBge3J9CmMgPC0gVFJVRQpkIDwtIEZBTFNFCiFjICAgICAgICAgICAgICAgICAKYyAmIGQgICAgICAgICAgICAgIApjIHwgZCAgICAgICAgICAgICAgCnhvcihjLCBkKSAgICAgICAgICAKYGBgCgojIyBMb2dpY2vDvSB2w71zbGVkb2sgcG9yb3Zuw6F2YW5pYQoKYGBge3J9CjIyIDwgNTkKMzMgPj0gMzMKInJlZCIgPT0gInJlZCIKInJlZCIgIT0gIndoaXRlIiAgIAohVFJVRQpgYGAKCiMjIFpsb8W+aXRlasWhaWUgbG9naWNrw6kgb3BlcsOhY2llCgpgYGB7cn0KeCA8LSAxNAp4ID4gOCAmIHggPCAzMCAgICAgIAp4IDwgMCB8IHggPiAxNTAgICAgIAogICAgICAgICAgICAgICAgICAgIApgYGAKCiMgTcO0aiBuw6F2cmggcG91xb5pdGlhIG5vdmlua3kKYGBge3J9CnVuaXF1ZSgxKSAjIHZ5YmVyaWUgbGVuIGplZGluZcSNbsOpIGhvZG5vdHkgCmR1cCA8LSBjKDEsIDIsIDIsIDMsIDMsIDMpIAp1bmlxdWUoZHVwKQpgYGAKCmBgYHtyfQp0b2xvd2VyKDEpICMgcHJldmVkaWUgdGV4dCBuYSBtYWzDqSBww61zbWVuw6EgCnRleHQgPC0gIlByb2dyYW1vdmFuaWUgdiBSIiAKdG9sb3dlcih0ZXh0KQpgYGAKCgpgYGB7cn0KdG91cHBlcigxKSAjIHByZXZlZGllIHRleHQgbmEgdmXEvmvDqSBww61zbWVuw6EKdGV4dCA8LSAicHJvZ3JhbW92YW5pZSB2IHIiCnRvdXBwZXIodGV4dCkKYGBg