Open TomasRode opened 5 years ago
Svetujem, da za branje podatkov uporabljaš funkcije read_*
(s podčrtajem, ne s piko) iz knjižnice readr
. Pri tem lahko podaš tudi, katere vrednosti naj razume kot NA
, tako da se bodo števila pravilno uvozila:
WBD <- read_csv("podatki/WBD_izobrazevanje.csv", na="..", n_max=258) %>%
melt(id.vars=1:4, variable.name="leto", value.name="vrednost") %>%
mutate(leto=parse_number(leto))
Poleg tega je bilo potrebno podati tudi število uvoženih vrstic, saj je na koncu nekaj komentarjev, in pa leta (iz imen stolpcev) pretvoriti v števila. Pazi tudi, da podaš ustrezno pot do datoteke, ki se nahaja v mapi podatki (delovni imenik se v RStudiu pri nalaganju projekta nastavi na vrhnjo mapo repozitorija - tega ne spreminjaj).
Opažam še, da ostale datoteke CSV v mapi podatki
niso ustrezno oblikovane - sklepam, da si jih odprl v Excelu in nato shranil. Namesto tega svetujem, da datoteke še enkrat pobereš in jih neposredno shraniš, brez predhodnega odpiranja v Excelu. Potem lahko datoteke prebereš z read_csv
, pri čemer nastaviš, da se uporablja decimalna pika:
PISAmat <- read_csv("podatki/PISA_math.csv", locale=locale(decimal_mark="."))
Pri navajanju imen datotek pazi na velikost črk, saj so nekateri sistemi na to občutljivi. Tako podajaš ime datoteke PISA_reading.csv
, v mapi podatki
pa imaš datoteko Pisa_reading.csv
, zato naj tako piše tudi v kodi. Svetujem sicer, da te tri razpredelnice združiš v eno, saj gre pri vseh za isto obliko, stolpec INDICATOR
pa že pove, za katere podatke gre. Iz podatkov tudi izloči povprečja (koda OAVG
):
PISA <- rbind(PISAmat, PISArea, PISAsci) %>% filter(LOCATION != "OAVG")
Hvala, zdaj deluje. Imam pa še eno vprašanje: v PISA tabeli imam podatke za dekleta, fante in skupaj. Ali se znebim skupnih podatkov? Nisem prepričan, ker nimam številk o razmerju med fanti in dekleti. Lahko pa vzamem 52/48, kot to velja v splošnem.
Če nimaš točnih podatkov o številu vsakih, potem lahko skupne podatke pustiš (če jih boš seveda potreboval).
Težavo imam s preoblikovanjem tabele WBD, pri uvozu podatkov. Razlicne vrednosti v prvem stolpcu bi morale biti posamezni stolpci, stolpci 2000:2017 pa bi morali iti pod stolpec 'leto'. S funkcijo melt mi tega ni uspelo narediti. Naj napravim samo toliko različnih tabel kot je vrednosti in v vsaki posebej naredim melt?