OkornA18 / APPR-2019-20

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

tidy data #1

Open OkornA18 opened 4 years ago

OkornA18 commented 4 years ago

Pozdravljeni! Zanima me če sta 1. in 3. tabela že v tidy data obliki? Za ostale pa me zanima, kako bi lahko združila stolpca moški in ženske oz. izredni in redni študij. Hvala za odgovor in lepo pozdravljeni, Ana Marija Okorn

jaanos commented 4 years ago

Pri 1. in 3. razpredelnici do oblike tidy data manjka le to, da se znebiš sumarnih podatkov. Poleg tega lahko pri 1. razpredelnici leto pretvoriš v številko (npr. 2009/10 v 2009), da lahko razpredelnici združiš. Poleg tega se zadnja "regija" (neznano/tujina) razlikuje v velikosti začetnice, tako da bo potrebno to poenotiti. Vse skupaj bi šlo nekako tako:

tabela13 <- tabela1 %>%
  mutate(Leto=parse_number(Leto), # leta pretvorimo v števila
         Regija=gsub("^stalno", "Stalno", Regija)) %>% # stalno -> Stalno na začetku
  full_join(tabela3) %>% # združimo po skupnih stolpcih in ohranimo vse vrstice
  filter(Regija != "SLOVENIJA") %>% # odstranimo sumarne podatke
  gather(key="Kategorija", value="Stevilo", -Regija, -Leto) # pretvorimo v tidy data

Nova razpredelnica bo tako poleg stolpcev Regija in Leto imela še stolpca Kategorija in Stevilo (šumnikom, presledkom in drugim posebnim znakom se pri imenih stolpcev raje izogibamo). Na podoben način lahko uporabiš gather, da tudi ostale razpredelnice pretvoriš v obliko tidy data (pri tabela2 bo potrebno seveda pretvoriti tudi leto v število).

jaanos commented 4 years ago

Sedaj si pri uvozu tabela1 in tabela3 podala ime stolpca stevilo, zaradi česar združevanje ne deluje tako, kot bi moralo (v vseh vrsticah imaš v stolpcu kategorija vrednost stevilo). Najlažje bo, če za imeni stolpcev podaš vrednost, ki jo tam želiš (npr. dijaki oziroma diplomanti).

Glede na to, da je vsaka razpredelnica posebej že v obliki tidy data, bi sicer druga možnost bila, da v vsako razpredelnico posebej dodaš stolpec kategorija z ustrezno vrednostjo, pa potem obe razpredelnici združiš z rbind (združevanje po vrsticah).