timotejvesel / APPR-2017-18

Repozitorij z gradivi za predmet Analiza podatkov s programom R v študijskem letu 2017/18
MIT License
0 stars 0 forks source link

Tidy data #1

Closed timotejvesel closed 6 years ago

timotejvesel commented 6 years ago

Pozdravljeni, zanima me, če so moje razpredelnice že v obliki "tidy data", ali moram še kaj spremeniti. Prav tako me zanima zakaj mi noče naložiti datoteke projekt.Rmd.

Hvala za odgovor.

jaanos commented 6 years ago

Razpredelnica draft.ekipe izgleda v redu. Vidim, da si nekatere stolpce pobrisal - kolikor vidim, so tam čisto v redu podatki, tako da svetujem, da jih pustiš. Ni pa potrebe, da podatke zapišeš v datoteko CSV. Ta razpredelnica bo torej za posameznega igralca povedala podatke o njegovem draftu (leto, krog, izbor, ekipa), pozicijo in college. Opažam sicer, da imaš te iste podatke tudi že v pro-football-reference.csv - tam manjka samo 12 igralcev s spletne strani. Razmisli torej, ali te podatke dejansko potrebuješ.

Funkcija za uvoz statistike ti ne deluje, saj nikjer ne vračaš razpredelnice - namesto pisanja v datoteko CSV naredi return(statistika). Funkcijo bo seveda potrebno še poklicati, da se izvede, npr.

statistika <- uvozi.statistiko()

Tako kot je, razpredelnica ni v obliki tidy data - za vsakega igralca imaš namreč različne meritve na različnih lestvice. Treba bo torej narediti nekaj razpredelnic - npr. tekme, podaje, jardi, itd., ter še eno za preostale podatke, katerih lestvica se pojavi samo enkrat (podatki o izboru, pa morda še kateri od številskih podatkov). Slednjo lahko narediš tako, da ohraniš samo želene stolpce (lahko uporabiš funkcijo select iz knjižnice dplyr), za ostale pa bo potrebna nadaljnja pretvorba s funkcijo melt iz knjižnice reshape2, npr.

podaje.td <- statistika %>% select(Ime, Uspesne.p, Podaje, Podaje.TD, Prestrezene.p, TD.tek) %>%
  melt(variable.name = "tip", value.name = "stevilo", na.rm = TRUE)

Ne vem sicer, če je to smiselno, ampak v zgornjem primeru se v eni razpredelnici zberejo podatki o podajah in touchdownih iz teka (ker boš po eni strani želel primerjati podaje, po drugi strani pa touchdowne po podajah primerjati s touchdowni iz teka). Podobno lahko narediš še za ostale skupine podatkov.

Združevanje na tej točki ni smiselno, saj želiš zaenkrat samo pripraviti podatke za nadaljnje delo. Namesto merge sicer za potrebe združevanja svetujem uporabo funkcij inner_join in left_join iz knjižnice dplyr (prva ohrani samo ujemajoče se vrstice, druga pa vse vrstice iz prve razpredelnice in jo tako lahko uporabiš za dodajanje manjkajočih igralcev).

Poročila ti ne prevede, ker pride pri izvajanju programa uvoz.r do napake (spremenljivka statistika ni definirana - glej zgoraj). Poskrbi torej, da se bo uvoz.r v celoti pognal brez napake. Poleg tega bo treba iz projekt.Rmd odstraniti še del, ki je ostal iz vzorca - torej od risanja histograma naprej. Seveda lahko namesto tega narišeš kak svoj graf. Da ti v poročilo ne bo izpisovalo opozoril, ki se pojavijo ob uvozu, v glavo bloka kode, kjer pokličeš uvoz.r, dodaj še parameter warning = FALSE. Svetujem tudi, da iz glave poročila odstraniš vrstico runtime: shiny, saj je zaenkrat ne potrebuješ - namesto Run Document se bo pojavil gumb Knit, ki bo poročilo prevedel v obliko HTML.