LacenS / APPR-2014-15

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

Risanje zemljevida #7

Closed LacenS closed 9 years ago

LacenS commented 9 years ago

Ko preuredim tabelo s funkcijo preuredi (v vizualizacija.r) mi iz tabele izbrise United States, posledicno, ko risem zemljevid ga ne obarva pravilno saj so pri united states v zemljevidu podatki NA tudi pri nekaterih drugih drzavah sem opazila, da podatki niso "sinhronizirani" s tabelo t1-iz katere jemljem podatke. Kje bi lahko bil problem? (na repozitoriju se nimam funkcije za risanje zemljevida saj se jo sestavljam)

Hvala za pomoc! lp

LacenS commented 9 years ago

pa rownames v tabeli sem preuredila, tako se vsaj vecinoma(ta pomembne) ujemajo z zemljevidom

jaanos commented 9 years ago

Funkcija preuredi deluje, dokler se imena v razpredelnici in zemljevidu enako uredijo. Glede na to, da imaš v razpredelnici t1še podatke za celotne regije in da so nekatera imena toliko drugačna, da bi se drugače uredila, bo verjetno enostavneje, če namesto funkcije preuredi raje prirediš imena tako, da se bodo ujemala, potem pa narediš ujemanje s funkcijo match. V prvi tabeli nimaš posebnih znakov v imenih držav, zato bo najenostavneje, če jih odstraniš še iz imen v zemljevidu, potem pa ta ustrezno popraviš (seveda v novem vektorju). Pri drugi tabeli je ujemanje večje.

imena.svet <- gsub("Saint", "St.",
                   iconv(svet$name_long, from = "UTF-8", to = "ASCII//TRANSLIT"))
names(imena.svet) <- imena.svet
imena.svet["Bahamas"] <- "Bahamas, The"
imena.svet["Cape Verde"] <- "Cabo Verde"
imena.svet["Dem. Rep. Korea"] <- "Congo, Dem. Rep."
imena.svet["Democratic Republic of the Congo"] <- "Korea, Rep."
imena.svet["Federated States of Micronesia"] <- "Micronesia, Fed. Sts."
imena.svet["Guernsey"] <- "Channel Islands"
imena.svet["Jersey"] <- "Channel Islands"
imena.svet["Kyrgyzstan"] <- "Kyrgyz Republic"
imena.svet["Macao"] <- "Macao SAR, China"
imena.svet["St.-Martin"] <- "St. Martin (French part)"
imena.svet["Sint Maarten"] <- "Sint Maarten (Dutch part)"
imena.svet["The Gambia"] <- "Gambia, The"

imena.t2 <- rownames(t2)
names(imena.t2) <- imena.t2
imena.t2["Bosnia Herzegovina"] <- "Bosnia and Herzegovina"
imena.t2["Brunei"] <- "Brunei Darussalam"
imena.t2["Congo"] <- "Republic of Congo" # ni jasno, katera država je mišljena
imena.t2["Gambia"] <- "The Gambia"
imena.t2["Hong Kong SAR"] <- "Hong Kong"
imena.t2["Micronesia"] <- "Federated States of Micronesia"
imena.t2["Russia"] <- "Russian Federation"
imena.t2["Sao Tome and Principe"] <- grep("Principe", svet$name_long, value=TRUE)
imena.t2["South Korea"] <- "Republic of Korea"
imena.t2["Viet Nam"] <- "Vietnam"

m1 <- match(imena.svet, rownames(t1))
m2 <- match(as.character(svet$name_long), imena.t2)
tab1 <- t1[m1,]
tab2 <- t2[m2,]
jaanos commented 9 years ago

Še to: namesto, da za vsak interval posebej določiš barvo iz vektorja, lahko kar poračunaš ustrezen indeks (če število ni celo, ga zaokroži navzdol):

barve <- vektor[svet$X2000/10 + 1]

Za tem lahko seveda vrednosti NA nadomestiš z belo barvo.

LacenS commented 9 years ago

Hvala za oboje! Sploh nisem pomislila, da bi se lotila na ta nacin :) lp

jaanos commented 9 years ago

Mimogrede, sedaj, ko imaš risanje zemljevidov vsaj delno narejeno, je čas, da odkomentiraš klic programa vizualizacija.r v glavnem programu.