janrudof / 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

Zemljevid #1

Closed janrudof closed 6 years ago

janrudof commented 6 years ago

S spletne strani sem naložil zemljevid sveta, ampak imam podatke ( v tabeli5), samo za nekaj držav Evrope in skupaj za celotno Azijo ter Afriko. Kako bi lahko zemljevid "porezal", da bi dobil sliko ter podatke v tabeli za svet brez Amerike in Antarktike, ter da bi pobrisal meje držav v Afriki in Aziji, da bi ju dobil kot celoto?

jaanos commented 6 years ago

Najprej, pri izvajanju programa uvoz.r pride do napake - v funkciji uvozi.tabela3 se sklicuješ na neobstoječo spremenljivko stolpci5 - najbrž potrebuješ stolpci3. V programu tudi ne uporabljaj ukaza View(), saj ne želiš, da bi se ti razpredelnice prikazovale med prevajanjem poročila.

Drugič, v razpredelnicah tabela3, tabela4 in tabela5 imaš podatke na treh različnih skalah - število potovanj/prenočitev, povprečno število nočitev, in povprečni izdatki v evrih. Predlagam, da vsako razbiješ na dve razpredelnici: v eni ohraniš samo vrstice za števila potovanj in prenočitev, v drugi pa podaš povprečno število nočitev in povprečne izdatke vsako v svojem stolpcu, npr.

tabela5.stevilo <- tabela5 %>% filter(VRSTA_MERITVE %in% c("Potovanja (v 1000)",
                                                           "Prenočitve (v 1000)"))
tabela5.povprecja <- tabela5 %>%
  filter(VRSTA_MERITVE %in% c("Povprecno stevilo prenocitev",
                              "Povprečni izdatki na turista na prenočitev (EUR)")) %>%
  dcast(LETO + VRSTA_POTOVANJA + DRZAVA_POTOVANJA ~ VRSTA_MERITVE)
colnames(tabela5.povprecja)[4:5] <- c("POVPRECNO_PRENOCITEV", "POVPRECNI_IZDATKI")

Zemljevid lahko, tako kot ostale grafe, rišeš tudi po delih. V tvojem primeru bo treba posebej risati Evropo (združuješ po državah) ter Azijo in Afriko (združuješ po celini), tako da si najprej pripravi ustrezna podzemljevida:

zemljevid.evropa <- zemljevid.tabela %>%
  filter(CONTINENT == "Europe" | NAME_LONG %in% c("Turkey", "Cyprus"))
zemljevid.ostale <- zemljevid.tabela %>%
  filter(CONTINENT %in% c("Asia", "Africa"), ! NAME_LONG %in% c("Turkey", "Cyprus"))

Turčija in Ciper sta na zemljevidu označena pod Azijo, zato ju obravnavamo posebej.

Sedaj lahko iz svojih podatkov sestaviš zemljevid, npr.:

zasebna.2016 <- tabela5.povprecja %>% filter(LETO == 2016, VRSTA_POTOVANJA == "Zasebna potovanja")
zem5.z2016 <- ggplot() + aes(x = long, y = lat, group = group, fill = POVPRECNI_IZDATKI) +
  geom_polygon(data = zasebna.2016 %>%
                 right_join(zemljevid.evropa, by = c("DRZAVA_POTOVANJA" = "NAME_LONG")),
               color = "black") +
  geom_polygon(data = zasebna.2016 %>%
                 right_join(zemljevid.ostale, by = c("DRZAVA_POTOVANJA" = "CONTINENT"))) +
  coord_cartesian(xlim = c(-25, 45), ylim = c(30, 75))

Glede na to, da je večina podatkov za Evropo, ne bi bilo smiselno prikazati celotne Azije in Afrike - dovolj bo, da se vidi del. Kolikor vidim, so za leta 2012, 2013 in 2014 podatki samo za Afriko, za 2015 in 2016 pa samo za Azijo, tako da žal ne bosta hkrati pobarvani.

jaanos commented 6 years ago

Še to: vidim, da je Severni Ciper (Northern Cyprus) na zemljevidu obravnavan posebej, tako da ga vključi pod Evropo, pa ga ne bo pobarvalo kot Azijo.