Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyVýpočetní matematické systémy Výuka jazyka R Datové tabulky a seznamy Úlohy k procvičení

Logo Matematická biologie

Úlohy k procvičení

Cvičení 1. Následující tabulka popisuje 10 pacientů s podezřením na krátkozrakost (myopii). Tabulku přepište do systému R jako datovou tabulku myopie1, hodnoty pro pohlaví a myopii rodičů zadávejte jako faktor.

 
myopie1 <- data.frame(ID=101:110, pohlavi=factor(c(0, 1, 1, 0, 1, 0, 0, 0, 1, 0), labels=c("muz", "zena"), levels=c(0, 1)), delka.studie=c(3, 5, 2, 4, 4, 3, 2, 1, 7, 5), myopie.rodic=factor(c(1, 0, 0, 1, 1, 1, 0, 1, 1, 1), labels=c("ne", "ano"), levels=c(0, 1)))

 

 

 

Cvičení 2. Přidáním nového sloupce pro délku oční bulvy delka s hodnotami 20.4, 22.7, 21.3, 24.56, 20.9, 21.8, 23.5, 23.9, 19.9, 22.6 vytvořte z tabulky myopie1 tabulku myopie.
a) Z tabulky myopie odstraňte všechny sudé řádky. 
b) Z tabulky myopie odstraňte sloupec "myopie rodičů". Zjistěte rozměry nově vzniklé tabulky. 
c) Vypište "ID" a "pohlaví" pacientů z tabulky myopie1 s délkou studie větší než čtyři roky.
d) Vypište tabulku myopie seřazenou podle délky studie pacientů, popř. dle délky oční bulvy.

Řešení

myopie <- data.frame(myopie1, delka=c(20.4, 22.7, 21.3, 24.56, 20.9, 21.8, 23.5, 23.9, 19.9, 22.6))
a) myopie <- myopie[-seq(from=2, by=2, to=nrow(myopie)),]
b) myopie[,"myopie.rodic"] <- NULL}, texttt{dim(myopie)
c)  subset(myopie1, select=c(ID, pohlavi), subset=delka.studie>4)
d) myopie[order(myopie$delka.studie, myopie$delka),]

 

 

 

 

 

 

Cvičení 3. Následující tabulku definujte jako datovou tabulku myopie2:

Poté slučte tabulky myopie1 a myopie2 na základě "ID". Vyzkoušejte sloučení i pomocí funkce cbind.

Řešení

myopie2 <- data.frame(ID=101:110, barva.oci=c("modra", "zelena", "hneda", "hneda", "modra", "seda", "zelena", "modra", "modra", "hneda"), vek=c(8, 11, 9, 14, 9, 13, 9, 8, 12, 13))
merge(myopie1, myopie2, by="ID")
cbind(myopie1, myopie2)

 

 

 

 

Cvičení 4. Vytvořte seznam CR se složkami 
"země": Čechy, Morava, Slezsko, 
"města": Praha, Brno, Ostrava, Plzeň, Olomouc, 
"pohoří":

a) Vypište druhou složku seznamu CR ve formě seznamu. Rovněž zjistěte, jakého je tato složka datového typu. 
b) Přidejte novou složku "sousedé": Německo, Rakousko, Slovensko, Polsko. 
c) Smažte složku "země" a pomocí vhodné funkce zjistěte počet složek seznamu CR
d) Spočítejte průměrnou nadmořskou výšku pro uvedené vrcholy. (Pro výpočet průměru použijte funkci mean()).
 

Řešení

CR <- list(zeme=c("Cechy", "Morava", "Slezsko"), mesta=c("Praha", "Brno", "Ostrava", "Plzen", "Olomouc"), pohori=data.frame(pohori=c("Krkonose", "Jeseniky", "Sumava", "Beskydy", "Krusne hory"), vrchol=c("Snezka", "Praded", "Plechy", "Lysa hora", "Klinovec"), nadm.vyska=c(1602, 1492, 1378, 1323, 1244)))
a) CR[2] nebo CR["mesta"], typeof(CR[2])
CR[[2]] nebo CR[["mesta"]] nebo CR$mesta, typeof(CR[[2]])
b) CR$sousede <- c("Nemecko", "Rakousko", "Slovensko", "Polsko") nebo CR[["sousede"]] <- c("Nemecko", "Rakousko", "Slovensko", "Polsko")
c) CR$zeme <- NULL nebo CR["zeme"] <- NULL
  length(CR)
d) mean((CR$pohori))[,3]

 

 

 

 

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity