[1] NA
Zpracovávání výzkumných dat pomocí jazyka R
kurz s cílem poskytnout účastníkům solidní základy práce s R za účelem následné práce s vědeckými daty
zakončení mikrocerfikátem: oficiální certifikát uznávaný napříč EU s jasně definovanými dovednostmi
pokračování: do budoucna jsou plánována jednorázová školení na specifická pokročilá témata o která bude zájem
manažer repozitáře pro výzkumná data na UK
výuka R v rámci programu Charleston, Letní školy pro data stewardy, a akcí pod záštitou CpOS
datová práce všeho druhu
datová analýza pro Akademii Věd
konzultace pro dizertační, diplomové a bakalářské práce
KPZ (kolega poslední záchrany)
popularizačně naučné přednášky nejen o datové analýze
Ano.
úvodní opakování z předchozí hodiny
výklad nové látky
cvičení z probrané látky
řešení “chuťovek” z minulých hodin a z dotazů
zadání domácího úkolu
Před každou hodinou (maximálně pondělí ráno daného týdne) bude do výukových materiálů nahrána prezentace k dané lekci, stejně tak veškerá potřebná data co je třeba si stáhnout.
Pokud bude potřeba abyste si pro práci v hodině nějaká data stáhli, učiňte tak prosím a uložte si je do dedikované složky na vašem počítači.
Doporučuji mít prezentaci během hodiny otevřenou pro nahlížení a kopírování kódu.
Pokud si chcete psát ruční poznámky, zmáčknutí “e” a poté tisk obrazovky vám umožní vytisknout si snímky prezentace v PDF.
U každé hodiny budou cvičení na doma navíc. Bude se jednat o směs již probrané látky a problémů na zapřemýšlení. Jsou nepovinné - budete k nim mít i řešení, ale klidně mi je můžete poslat pro kontrolu / zpětnou vazbu.
V horním menu stránek kurzu naleznete odkaz na rezervační stránku konzultací. Pokud něco budete potřebovat probrat, ať již obsah kurzu či pomoc s R, můžete mi bud´ napsat a nebo si zde přímo rezervovat termín. Součástí jsou i všeobecné R konzultace, pokud víte, že by je vaši kolegové využili, klidně odkaz předejte.
V případě zájmu a dostatečné účasti je možné se domluvit na nepravidelných večerních code-along online sezení.
Open source programovací jazyk určený ke statistické analýze a datové vizualizaci.
v současnosti jeden ze standardů pro datovou analýzu ve vědecké sféře
aktivně využívaný, spravovaný a uržovaný globální vědeckou komunitou
nepřeberné množství specializovaných rozšíření
R
RStudio
IDE - vývojářské prostředí
usnadňuje práci s R
Skript: místo pro psaní kódu
Konzole: samotné R, místo výpočtů a zobrazování výsledků či chybových hlášek
Terminal: psaní přímo do příkazové řádky
Globální prostředí: přehled uložených proměných
History: historie spuštěného kódu
Files: soubory v daném adresáři se kterými R může pracovat
Plots: místo pro zobrazování grafů
Packages: plug-iny pro R
Help: nápověda
Konzole: stisknutím Enter
Skript:
jeden řádek: kliknu si do řádku a poté Ctrl + Enter (u Mac Option + Enter)
více řádků: myší si vyberu všechny řádky co chci spouštět a poté Ctrl + Enter (u Mac Option + Enter)
alternativa: je možné místo Ctrů + Enter spustit kód ve skriptu příkazem Run
integer
double
1.87, 0.3679
Inf
-Inf
taktéž popisovány jako boolean
TRUE
FALSE
Přestože s komplexním číslem můžeme provádět aritmetické operace, R jej nebere jako numeric hodnotu!
NaN je naopak bráno jako numeric hodnota
R umožňuje uložit si informace pomocí proměnných.
Místo toho, abyste poté museli informaci znovu definovat, tak si můžete zavolat proměnnou.
Hodnota se uloží pomocí následujícího postupu:
název proměnné <- hodnota
Názvy proměnných jsou vždy bez uvozovek - nejedná se o text, ale o jméno specifického objektu.
[1] 1066654352
Název se nerovná charakter hodnotě
Uložené proměnné jsou vždy vypsané v globálním prostředí.
mezera mezi slovy
začínat symbolem
začínat číslicí
Pozor na diakritiku!
Jaké proměnné mám uložené v globálním prostředí?
Seznam proměnných, které jsou v R uložené a se kterými můžete pracovat, naleznete v poli Environment v pravém horním rohu.
Můžete také ale využít funkce objects(). Ta do konzole vypíše názvy všech uložených hodnot.
Totožný výsledek získáte i pomocí funkce ls().
Je možné přepsat hodnoty?
Ano, pokud uděláte chybu v zápise či potřebujete změnit specifickou proměnnou či její část, není třeba ji mazat - stačí ji přepsat.
Co když chci hodnotu ale i tak smazat?
Funkce rm() umožňuje mazat uložené proměnné z globálního prostředí.
rm() - smaže VŠE
rm(název proměnné) - smaže specifickou proměnnou
Ulož do proměnné x číslo, do y text a do z boolean a následně je zobraz.
Jaký bude výsledek následujícího kódu?
Jaký bude výsledek následujícího kódu?
+ - sčítání a odčítání
* násobení
/ dělení
%% zbytek po dělení
%/% dělení bez zbytku
** nebo ^ umocnění
<= >= menší/větší nebo rovno
Logické operátory lze použít při výběru (vyber x NEBO y, x A y) či spojování podmínek, ale také umí vracet boolean hodnoty.
& a, taktéž, zároveň
| nebo
[1] FALSE TRUE TRUE FALSE
%in% je v, nachází se v
== je přesně
! není, not, negace
Hierarchie operátorů
Stejně jako násobení má přednost před sčítáním, tak i logické operátory mají svoji hierarchii.
Operátor ! má vždy přednost před &, který má zase přednost před | .
Jaký zbytek nám zbyde po vydělení násobku devíti a desíti číslem čtyři?
Jaký bude výsledek tohoto výpočtu?
Na dopravní hřiště mohou pouze děti ve věku 15 a více, mladší pouze s povolením rodičů. Může toto dítě na hřiště?
Frantovi je 53 let. Chce si koupit jízdenku, u které je možnost slevy pro seniory od 65 let, pro děti a studenty až do 26 let včetně.
Ověř, zda má Franta na tuto slevu nárok.
Uzavírají se známky na konci semestru. Zápočet dostanou pouze ti, kteří mají dosavadní hodnocení na lepším stupni než 5 a v posledním testu získali jiný počet než nula bodů. Pokud tyto podmínky nesplňují, tak zápočet mohou dostat i tehdy pokud vypracovali seminární práci navíc a v písemce měli alespoň 50 bodů.
Julie má dosavadní hodnocení sice na 5, ani písemka se jí nepovedla a měla pouze 17 bodů. Napsala ale velmi povedenou semestrální práci na téma kyberbezpečnosti ve Vietnamu.
Dostane Julie zápočet?
Dostane Julie zápočet?
Pro jednodušší práci s nimi si uložíme hodnoty do proměnných.
Hodnoty si dosadíme do výpočtu. Pozor na formulaci zadání!
Julie zápočet nedostane.
R je case sensitive!
Používejte co chcete ale buďte konzistentní.
Který styl se vám používá nejsnadněji? U kterého děláte nejvíc chyb?
Jaké jsou zvysklosti ve vašem oboru/laboratoři?
Možné styly zápisu:
camelCase
PascalCase
snake_case
kebab-dash
a jiné
# vše co je za hash symbolem počítač ignoruje
Ctrl + Shift + C po výběru více linek kódu je všechny přemění na komentář.
Pište si poznámky, ale zase to nepřežeňte - není to román.
Máme skript, pomocí kterého můžeme pracovat s daty, a který je dostatečně popsaný abychom ho mohli zaslat kolegům/sami pochopili, když se na něj podíváme později. Skripty v R se ukládají jako soubor s koncovkou .R.
Co když bychom si do R ale chtěli nahrát specifický dataset, který máme uložený v nějaké složce1? Když si otevřeme nějaký skript, tak R vždy automaticky otevře a používá nejzákladnější složku v počítači (ve Windows Dokumenty).
Pokud chcete v skriptu načíst datasety a pak s nimi pracovat, je potřeba mít určené, z jaké složky má R datasety tahat - v jakém prostředí se R pohybuje.
Nastavení je možné buď skrz Session > Set working directory a nebo skrz setwd() funkci.
Caution
Pozor, při použití setwd() funkce je třeba nadefinovat přesně cestu v počítači (absolutní cestu) jak se má R ke složce dostat!
V jaké složce se nyní pohybujete lze zjistit pomocí funkce getwd().
[1] "C:/Users/Lucie Hošková/Desktop/introR_CUNI/materialy/01_uvod/01_prezentace"
Nastavení pracovního adresáře ovlivňuje i další funkcionality R. Například, při ukládání skriptů se automaticky vybere jako možnost uložení právě složka pracovního adresáře.
"C:/Users/Jana/Desktop/vyzkum/M433/data/pribice.csv"
"./data/pribice.csv"
Relativní cesta odkazuje na soubor uvnitř specifického pracovního adresáře, nikoliv přímo na místo v počítači jako absolutní cesta.
Doporučuji absolutní cestu když už používat, tak pouze při nastavování setwd(). Sice lze teoreticky nahrávat soubory a provádět jiné akce uvnitř pracovního adresáře i pomocí absolutní cesty, ale jakmile by se například složka ve které se pracuje kamkoliv posunula, tak by absolutní cesta přestala fungovat.
Co kdybychom chtěli, aby se nám všechny naše skripty a jejich výsledky automaticky ukládaly do a tahaly rovnou z jednoho specifického adresáře bez potřeby ho při každém otevření RStudia nastavovat, a který bychom navíc mohli jednoduše vzít a přesunout či ho někomu zazipovaný poslat?
Toho můžete docílit pomocí vytvoření RProjektu.
Postup k vytvoření projektu
File > New Project > bud' existující složka a nebo vytvoření nové
RProjekt vytvoří “izolované” prostředí, kdy všechny vaše soubory uvnitř tohoto adresáře budou svázané dohromady, budou se vám automaticky znovu nahrávat uložené proměnné bez nutnosti opakovaného spouštění kódu, a hlavně k nim vždy bude relativní, nikoliv absolutní cesta = celý projekt si můžete přesouvat mezi složkami či počítači bez potřeby nastavování working directory.
RProjekty mají implicitně nastavený adresář
Tím, že si vytvoříte RProjekt, tak si vytváříte novou složku/nastavujete složku, do které se vám budou ukládat veškeré vznikající skripty a RData soubory. Nemusíte tak již adresář nastavovat pomocí setwd()!
V základním nastavení RProjekty umožňují ukládání a následné nahrávání proměnných, které jsme si vytvořili, zpět do globálního prostředí. Není proto potřeba při každém otevření projektu v RStudiu celý skript projíždět znovu a všechno znovu nahrávat. Je ovšem možné si uložit vybranné proměnné i ručně.
Objekt RData v sobě obsahuje informace o jednotlivých proměnných. Do globálního prostředí se nahrají funcí load().
Můžete svým kolegům tak například poslat již vyčištěná a připravená data, bez toho aby si sami museli nahrávat původní tabulku a provádět na ní veškeré kontroly.
Vytvořte RProjekt. Nahrajte do globálního prostředí proměnné z promenne.RData. Pomocí nich zjistěte, kolik zaměstnanců lze z rozpočtu platit po uvedenou dobu měsíců
plat = jaký je plat jednoho zaměstnance za jeden měsíc
pocetMesicu = kolik měsíců je potřeba všechny zaměstnance platit
rozpocet = jaký finanční rozpočet máte na dobu pocetMesicu k dispozici
Studentstvo může získat stipendium za následujících dvou situací: mají průměr známek menší než 1.8 a zároveň absolvovali alespoň 80 % docházky, a nebo pokud mají potřebný průměr a reprezentují školu na soutěžích.
Saša má průměr 1.7, zameškáno 3 hodin z 10 a pravidelně vyhrává biologickou olympiádu.
Zjisti, zda má Saša právo na stipendium.
Zazipovanou složku RProjektu se skriptem a RData souborem zašlete nejpozději do pátku před příští hodinou na lucie.hoskova@ruk.cuni.cz