Kérdések

1 szavazat
3k megtekintés
R-ben szeretnék települési poligonokat tartalmazó térképet: olyat, amilyen itt is van: ![enter image description here][1] Forrás:[KSH](http://www.ksh.hu/docs/teruletiatlasz/telepulesek_nagy.png) Ha ggplot2-t használok, akkor elég, ha a települési poligonok koordinátái és valami településazonosító van hozzá (lat, long, id). Ha van shapefile, akkor persze egyszerű, de települési szintű teljes shapefile nincs az országról. Az openstreetmap alapján elvileg le lehet kérni ilyen adatokat, de sajnos nem minden településre. Van egy kis program, amivel elég sokadatot ki lehet nyerni: # települések neve egy vektorba stl <- osm_telep[,1] # függvény a koordináták összegyűjtéséhez ===================== osm_poly <- function(settlement_q){ # web lekérdezéshez állandó részek: nmt1 <- "http://nominatim.openstreetmap.org/search?q=" nmt2 <-"&format=xml&polygon=1&limit=1&countrycodes=hu" # kereső kifejezés: search_string <- paste0(nmt1, settlement_q, nmt2, collapse = "") require(XML2R) # Település koordinátái és egyebek dt <- XML2R(search_string) # poligonok pp <- dt[[2]][6] # tisztogatás pp2 <- substr(x = pp, start = 2, stop = nchar(pp)-1) # poligon koordináták kinyerése pp3 <- unlist(regmatches(x = pp2, gregexpr("[[:digit:]]+.[[:digit:]]+", pp2))) # koordináták rendezése long <- as.numeric(pp3[seq(from = 1,to = length(pp3), by = 2)]) lat <- as.numeric(pp3[seq(from = 2,to = length(pp3), by = 2)]) # települési adat dt_k <- data.frame(long=long, lat=lat, NEV=settlement_q) if (i==1) { map <<- dt_k } else{ map <<-rbind(map, dt_k) } return(map) } # ============== fg. vége ============================= # végrehajtás for (i in 1:length(stl)){ osm_poly(settlement_q = stl[i]) } Hogyan lehetne a hiányzó adatokat letölteni? Úgy tűnik, a poligonok ott vannak valami adatbázisban, hiszen láthatóak, csak mintha rossz helyen keresném. A cél az lenne, hogy az ország összes települési poligonjának koordinátái egy állományban legyenek, és egyszerű legyen olyasmit rajzolni, mint a fenti képen. pl.: Balatoncsicsó [1]: http://www.ksh.hu/docs/teruletiatlasz/telepulesek_nagy.png
  • H.Gergely kérdezte 3 év ago
  • utolsó aktivitás 3 év ago
0 szavazat
2k megtekintés
Ha van egy `factor` változó, ami valójában `numeric` (csak mondjuk egy adatbeolvasási hiba miatt (pl.: `NoN` érték szerepel a beolvasott adatbázisban) `factor`ként jelenik meg az adatbézisban és vissza szeretném konvertálni `numeric` változóvá, akkor az `as.numeric` parancs miért a `levels` értékeket adja vissza? (fac <- as.factor(rnorm(10, 2))) ## [1] -0.554380142390025 3.01286043579667 2.14062458421036 0.795901374774481 1.1525828780559 2.646332153364 2.17778700367428 1.98899049113525 3.01461688372712 2.2758493636756 ## Levels: -0.554380142390025 0.795901374774481 1.1525828780559 1.98899049113525 2.14062458421036 2.17778700367428 2.2758493636756 2.646332153364 3.01286043579667 3.01461688372712 as.numeric(fac) ## [1] 1 9 5 2 3 8 6 4 10 7 Mi a leghatékonyabb konverzió?
  • tothgergo kérdezte 3 év ago
  • utolsó aktivitás 3 év ago
0 szavazat
2k megtekintés
Van egy `data.frame` objektumom: (dd <- data.frame(b = factor(c("Mag", "Köz", "Mag", "Ala"), levels = c("Ala", "Köz", "Mag"), ordered = TRUE), x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9), z = c(1, 1, 1, 2))) ## b x y z ## 1 Mag A 8 1 ## 2 Köz D 3 1 ## 3 Mag A 9 1 ## 4 Ala C 9 2 Szeretném több oszlop szerint is sorbarendezni. Mi a leghatékonyabb módja ennek?
  • tothgergo kérdezte 3 év ago
  • utolsó aktivitás 3 év ago
0 szavazat
2k megtekintés
Nézzük meg a következő nagyon egyszerű kódot: i <- 0.1 i <- i + 0.05 i ## [1] 0.15 if(i==0.15) cat("i egyenlő 0.15-tel") else cat("i nem egyenlő 0.15-tel") ## i nem egyenlő 0.15-tel (i==0.15) ## [1] FALSE Vajon miért nem egyenlőek?
  • tothgergo kérdezte 3 év ago
  • utolsó aktivitás 2 év ago
5 találat mutatása