
Základní příkazy, tvorba datových tabulek a seznamů
Datová tabulka je 2-dimenzionální struktura, která slouží k uchování souboru dat. Soubor dat se skládá z množiny proměnných (sloupce), které jsou pozorovány na množství případů (řádky). Jednotlivé sloupce mohou být různých datových typů, ale prvky každého sloupce musí být stejného datového typu. Počet případů musí být pro každou proměnnou stejný.
Seznam je nejobecnější datová struktura v R, která seskupuje několik (různých) objektů do objektu většího rozsahu. Jedná se o datovou strukturu skládající se z posloupnosti objektů, kterým se říká složky. Každá složka může obsahovat objekt jakéhokoliv datového typu. Seznam tedy může obsahovat vektory různých datových typů a délek, matice, pole, datové tabulky, funkce a/nebo jiné seznamy. Proto jsou seznamy vhodnými výstupy nejrůznějších výpočtů.
Rovněž je důležité si uvědomit, že datová tabulka je speciálním případem seznamu. Nejedná se o nic jiného, než seznam, jehož složky jsou vektory stejné délky a odpovídající pozice vyjadřují stejné případy (např. výskyt aut červené a modré barvy během středy).
Datovou tabulku vytvoříme příkazem data.frame(). Argumenty nazev_1=vektor_1, nazev_2=vektor_2,... specifikujeme názvy sloupců (proměnných) a jejich hodnoty, názvy sloupců jsou nepovinné, stačí zadat pouze hodnoty. Argument row.names (implicitní nastavení NULL případy čísluje) specifikuje názvy případů. Argument check.names s implicitním nastavením TRUE kontroluje, zda jsou názvy proměnných syntakticky správné a zda se neopakují, v případě duplikací se stará o jejich přejmenování.
> data.frame(obor=factor(c(1, 0, 0, 1, 1), labels=c("OM", "MAEK")), body=c(18, 13, 15, 20, + 15))
> data.frame(obor=factor(c(1, 0, 0, 1, 1), labels=c("OM", "MAEK")), body=c(18, 13, 15, 20,
+ 15), row.names=c("Petr", "Pavel", "Jirina", "Adela", "Matej"))
> data.frame(a=c(1,2), a=c(T,F), check.names=T)
> data.frame(a=c(1,2), a=c(T,F), check.names=F)
|
Funkce list() slouží k vytvoření seznamu. Stejně jako u funkce data.frame() mohou být i složky seznamu pojmenovány pomocí argumentů nazev_1=slozka_1, nazev_2=slozka_2,....
> (l <- list(barva=c("cervena", "modra", "bila"), data.frame(Petr= sample(5, replace=T),
+ Pavel=1:5, row.names=c("po","ut", "st", "ct", "pa"))))
$barva
[1] "cervena" "modra" "bila"
[[3]]
|
Funkce dim(), names() a contents() slouží k výpisu vlastností datové tabulky. Funkce dim() vypisuje dimenze tabulky dat, funkce names() zobrazuje názvy proměnných. Funkce contents() vrací vnitřní strukturu datové tabulky. Funkce je obsažena v balíčku Hmisc, který není ve standardní distribuci, je třeba jej proto doinstalovat příkazem install.packages("Hmisc") a načíst příkazem library(Hmisc).
K výpisu vlastností seznamu můžeme použít funkci names(), která vrací názvy složek seznamu. Funkce dim() a contents() u seznamu použít nemůžeme, můžeme je ovšem nahradit funkcemi length(), která vrací počet složek seznamu, a str(), která vypisuje vnitřní strukturu seznamu.