# před další prací pro jistotu uklidit: # lze použít nabídku Misc | Remove all... rm(list=ls(all=TRUE)) # # pro další práci načtěme data Deti23.csv # data předem nakopírovat do pracovního adresáře z V:\zvara\R # nejprve si data prohlédnout nějakým textovým prohlížečem # komentovat jejich vznik (export z Excelu v českém prostředí read.csv2("Deti23.csv") # ještě nemáme uloženo, jen jsme zobrazili # vysvětlit význam jednotlivých sloupců: # pořadí dítěte, váha a výška (delka) ve 12. měsíci věku dítěte, # hcd - počet onemocnění horních cest dýchacích během prvního roku života Deti23 = read.csv2("Deti23.csv") # uložit pod zvoleným názvem # shoda jmen je praktická, není nutná Deti23 # takto vidíme, co jsme uložili # přehled všech proměnných databáze summary(Deti23) # summary funguje inteligentně: argumentem je databáze, # summary pracuje s jednotlivýmí sloupci (proměnnými) # nepřehlédnout jinak vyhlížející Gender! # # připomeňme popisné statistiky # summary(vaha) # proč nejde? R nevidí DO databáze # kde hledá význam identifikátorů? search() # hledá se postupně tady, # na prvním místě je pracovní prostor, # pak jsou většinou knihovny ls() # seznam objektů v prac. prostoru, # nic jiného v prac. prostoru není summary(Deti23$vaha) # funguje, ale nepohodlně dlouhé označení # možnosti práce s databází # tři možnosti přístupu ke třetímu sloupci databáze Deti23$vaha # proměnná v databázi Deti23[,"vaha"] # sloupec databáze daného jména Deti23[,5] # sloupce databáze daný pořadovým indexem # Deti23[2,] # druhý řádek databáze Deti23[2:4,] # několik řádků databáze Deti23[c(1,5,3),] # některé řádky databáze, nepřehlédnout jejich pořadí Deti23[21:23,] # poslední tři řádky; nebo jinak: Deti23[-(1:20),] # záporné znamnko znamená vyloučení indexů # Deti23[Deti23$vekMatky==20,] # jen řádky splňující podmínku Deti23[Deti23$vekMatky<20,] # Deti23$vekMatky<20 # vektor pravdivostních hodnot # Deti23[1,5] # 1. řádek, 5. sloupec (vaha) # # zpět k popisným statistikám # # zpřístupnit "vnitřek" databáze # search() # znovu co je na prohledávané cestě attach(Deti23) # na viditelné místo umístí kopii search() # vidíme, kam přibyla KOPIE databáze # přednost má pracovní prostor, je první! # summary(vekOtce) # teď již váhy, vekOtce, ... vidíme sd(vekOtce) boxplot(vekOtce) # připomenout, co zobrazuje # kam až sahá nahoru tykadlo? sort(vekOtce) # aha, k hodnotě 47 sort(vekOtce)[length(vekOtce)-1] # z vektoru podá označený prvek # # připomenout vzorečky pro popisné statistiky # mean(vaha) sum(vaha)/length(vaha) # vlastně vzoreček var(vaha) sum((vaha-mean(vaha))^2/(length(vaha)-1)) # vlastně vzoreček # ted bychom měli rozumět výpočtu podle vzorečku # sXY = sum((vaha-mean(vaha))*(delka-mean(delka)))/(length(vaha)-1) sXY # výběrová kovariance cov(vaha,delka) sXY/(sd(vaha)*sd(delka)) # korelační koeficient # cor(vaha,delka) # korelační koeficient # # závislost dvojice kvantitativních znaků # plot(vaha~delka) abline(lm(vaha~delka)) # doplněna přímka, jaká, bude časem # vlnka se čte "závisí na" # # vylepšení obrázku (nový obrázek) # plot(vaha~delka,main=cor(vaha,delka)) # přidán nadpis # další vylepšení, možno přidat korelační koeficient plot(vaha~delka,main=round(cor(vaha,delka),2)) # je možno také rozlišit hochy a dívky barvou plot(vaha~delka,main=round(cor(vaha,delka),2),col=1+hoch) # plot(vaha~delka,main=paste("r=",round(cor(vaha,delka),2)),col=ifelse(Gender=="F","red","blue")) abline(lm(vaha~delka)) # # souvisí spolu věk obou rodičů? # plot(vekOtce~vekMatky) # závislost věku otce NA věku matky cor(vekOtce,vekMatky) # korelační koeficient # kteří rodiče mají stejný věk? abline(0,1,col="red",lty=3) # přímka y = x, tedy vekOtce = vekMatky which(vekOtce==vekMatky) # najde, kdy podmínka platí which(vekOtce<=vekMatky) # # elegantní možnost identifikace zajímavých bodů # POZOR na pořadí proměnných (osa x, osa y) # identify(vekMatky,vekOtce) # po ukončení se indexy označených bodů vypíší #