Guest User

Untitled

a guest
Oct 16th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. library(sp)
  2. library(rgdal)
  3. library(leaflet)
  4.  
  5. tmp <- tempdir()
  6. url <- "http://personal.tcu.edu/kylewalker/data/mexico.zip"
  7. file <- basename(url)
  8.  
  9. download.file(url, file)
  10.  
  11. unzip(file, exdir = tmp)
  12. mexico <- readOGR(dsn = tmp, layer = "mexico", encoding = "UTF-8")
  13.  
  14. pts <- data.frame(x=runif(100000, mexico@bbox[1,],mexico@bbox[3]),
  15. y=runif(100000, mexico@bbox[2,],mexico@bbox[4])
  16. )
  17.  
  18. coordinates(pts) <- ~x+y # pts needs to be a data.frame for this to work
  19. proj4string(pts) <- proj4string(mexico)
  20. estados <- over(pts, mexico)$id # matching de las coordenadas con los estados
  21.  
  22. estados <- estados[!is.na(estados)] # Borramos Na (puntos fuera de cualquier estado)
  23. mexico@data$random <- as.integer(unlist(aggregate(estados, by=list(estados), FUN=sum)[2]))
  24.  
  25. head(data.frame(id=mexico$id, estado=mexico$name, data=mexico@data$random))
  26.  
  27. id estado data
  28. 1 1 Aguascalientes 39
  29. 2 2 Baja California 1170
  30. 3 3 Baja California Sur 1647
  31. 4 4 Campeche 1672
  32. 5 5 Chiapas 2840
  33. 6 6 Chihuahua 12234
  34.  
  35. pal <- colorQuantile("Blues", NULL, n = 10)
  36. state_popup <- paste0("<strong>Estado: </strong>",
  37. mexico$name,
  38. "<br><strong>Valores random para cada estado: </strong>",
  39. mexico$random)
  40.  
  41. leaflet(data = mexico) %>%
  42. addProviderTiles("CartoDB.Positron") %>%
  43. addPolygons(fillColor = ~pal(random),
  44. fillOpacity = 0.8,
  45. color = "#BDBDC3",
  46. weight = 1,
  47. popup = state_popup)
Add Comment
Please, Sign In to add comment