<- 5.2
x <- 1.42e-2
x typeof(x)
[1] "double"
<- 5L
x typeof(x)
[1] "integer"
Interpretace geodat
2024-02-26
interpretovaný programovací jazyk přístupný v základu skrze příkazový řádek
implementace jazyka S pod open source licencí
určený primárně ke zpracování dat a jejich vizualizaci, s výrazným zaměřením na statistiku (původně) a celkovou problematiku zpracování dat (současnost)
základní funkcionalita není příliš široká (respektive snadno přístupná), většina funkcinality přichází z tzv. balíčků
centrální sklad balíčků - CRAN (Comprehensive R Archive Network)
konkurence: Matlab, Wolfram Language, Julia, Python, Excel
výraznější zaměření na data a operaci s nimi, většina funkcí dobře pracuje s vektory dat a datovými rámci
interpretovaný jazyk, možnost široce interagovat s daty a procesy
RStudio maximálně zpřístupňuje tzv. interaktivní práci s jazykem (náhledy na pamět, nápovědu, grafy a atd.)
od uživatele se většinou nepředpokládá “programování” (ve smyslu komplexnějších konstrukcí)
velice příjemná učící křivka
v R používáme pro přiřazení hodnoty do proměnné operátor <-
lze použít i =
ale z hlediska čtení kódu se to nedoporučuje
v RStudiu zkratka Levý Alt + -
c()
Pozor
pokud nejsou všechny prvky stejného typu, pak se typ změní na nejreprezentativnější
[]
list()
, umožňuje ukládat smíšené typy prvkůjednotlivé prvky lze získat podobně jako u vektorů
v jednoduché podobě vrací vždy seznam
Pozor
pokud chceme přímo hodnotu, pak musíme použít operátor [[]]
pro rozložení seznamu
+, -, *, /
^
nebo **
mocnina%%
modulo%/%
celočíselné dělení==, <, >, <=, >=, !=
!
zápor , |
nebo, &
a%in%
pro vyhledávání ve vektorech a seznamech$
a @
pro přístup k součástem komplexních datových strukturjak matematické, např. cos()
, sin()
, log()
atd., ale i funkce pro zpracování dat sort()
speciální případy c()
a list()
většinou vektorizované, takže lze provést nejen na jednom prvku (proměnné) ale přímo na vektoru
na funkce se lze odkazovat i balik::funkce()
, nepoužívá se často ale lze na tento zápis narazit, např. v situaci kdy je kolize názvů funkcí z různých balíků
#
2D struktury pro uložení dat - matice (matrix
), datové rámce (data.frame
)
v maticích musí být všechny prvky stejného typu, v datovém rámci se mohou jednotlivé sloupce lišit
pro zpracování dat se obvykle používá data.frame
, či jeho modernější verze tibble
s daty v této podobě se budeme setkávat v při zpracování dat nejčastěji
načtení ukázkové datové sady dostupné přímo v základní instalaci R
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
v data.frame
(tibble
) mají povinně sloupce názvy (případně je přiřazuje R)
teoreticky je možné libovolné pojmenování sloupce, ale pokud obsahuje mezeru nebo nestandardní znaky (české) tak je nelze zapisovat jednodušše
ideální je se těmto názvům vyhnout a předcházet problémům
funkce colnames()
a rownames()
jsou variantami funce names()
data.frame
se nazývá tibble
hodně využivívanou v balících tidyversedata.frame
je kompatabilníR je statistický software a snaží se tedy připravovat data pro statické zpracování
factor
je speciální typ dat, kdy se řetězce zakódují pomocí celočíselných hodnot a samotné textové hodnoty se uloží jako tzv. úrovně (levels
)
převod na factor pomocí funkce as.factor()
, z faktoru na řetězec as.character()
nebo na celé číslo as.integer()
faktor může být bez pořádí (nominální data), tak s určeným pořadím prvků (ordinální data)
col_1 col_2
1 1 a
2 3 b
3 8 b
4 7 a
[1] a b b a
Levels: a b
kromě data()
,View()
a names()
, které jsme už viděli
instalace balíků a jejich načtení do R
instalace se provádí pouze jednou, načtení balíku je potřeba udělat před každým jeho použitím v rámci nové R Sesssion
...
česky tzv. nestandardní vyhodnocování argumentů
příklad
u library()
pojem tidyverse
vypadá jako název proměnné, ale ve skutečnosti ho R vyhodnotí jako textové označení balíku
verze volání funkce s textovým řetězcem je také možná, ale považuje se to zbytečné
...
parametr ...
zachytí všechny atributy, kromě těch specificky pojmenovaných
všechny parametry jsou vyhodnoceny stejně, zde konkrétně vytvoří nové sloupce
tzv. metabalík - sám definuje pouze minimum funkcí, ale načítá nejdůležitější balíky pro zpracování dat
balíky, které sdílejí společnou filozofii designu funkcí
některé funkce základního R nemají ujednocené argumenty a celkové chování (vznikaly v různé době a od různých autorů), tidyverse směřuje k tomu tyto problémy odstranit a ujednotit chování funkcí
tidyverse balíky v maximální možné míře využívají NSE pro redukci množství kódu, který je potřeba napsat
[1] -3.3243334 -1.7586713 -1.0606213 -0.6343798 -0.3523136
operátor %>%
(klávesová zkratka Ctrl + Shift + M) umožňuje předat hodnotu před ním jako první parametr funkce za operátorem
není nutné vytvářet dočasné proměnné, ani tvořit složité konstrukce (viz výše)
tidyverse maximálně využívá možností řetězení funkcí
dosahuje se toho tím, že prvním argumentem funkce jsou vždy vstupní data (což v klasickém R není vždy pravda)
readr, readxl - načítání a ukládání dat
dplyr - základní manipulace s daty
tidyr - čištění a reformátování dat
ggplot2 - vizualizace, tvorba grafů
hms, lubridate - práce s datumy a časy
stringr - práce s textovými daty
purrr - fukncionální programování
Materiály dostupné: https://jancaha.github.io/vsb-vyuka/