--- layout: post title: "Bản đồ Việt Nam trong R" published: yes --- ## Lấy dữ liệu Dữ liệu bản đồ Việt Nam cho R được lấy từ trang . (Trên trang này còn có rất nhiều bản đồ khác.) Hoặc lấy trực tiếp trong R: ```{r eval=FALSE} con <- url("http://biogeo.ucdavis.edu/data/gadm2/R/VNM_adm2.RData") print(load(con)) close(con) ``` Sau khi lấy về (ngày 21/11/2014) thì thấy bản đồ này là bản đồ 64 tỉnh, tức bản đồ trước khi Hà Tây sáp nhập vào Hà Nội năm 2008. Vậy là phải thêm bước 2. ## Sáp nhập tỉnh ### Tải dữ liệu ```{r eval=FALSE} load("./vietnam/maps/VNM_adm2.RData") ``` ### Gọi thư viện cần thiết ```{r eval=FALSE} libs <- c("rgeos", "maptools", "sp") lapply(libs, require, character.only = TRUE) ``` ### Nhóm và sáp nhập tỉnh #### Sáp nhập SpatialPolygons ```{r eval=FALSE} gadm63.fac <- as.factor(c(1:18,19,18,21:64)) gadm63.sp <- unionSpatialPolygons(gadm, gadm63.fac) ``` #### Sáp nhập DataFrame ```{r eval=FALSE} # Lấy data frame từ gadm gadm63.df <- gadm@data # Xóa tỉnh "Hà Tây" gadm63.df <- gadm63.df[-20, ] ``` #### Trộn SP và DF ```{r eval=FALSE} gadm63 <- SpatialPolygonsDataFrame(gadm63.sp, gadm63.df) ``` #### Kiểm tra ```{r eval=FALSE} plot(gadm[c(18,20),]) plot(gadm63[10, ], add = TRUE, border = "red", lwd = 2) ``` ![Hà Nội](../figures/ban-do-viet-nam-in-r/hanoi.png){: .fig} Lưu lại dùng sau: ```{r eval=FALSE} saveRDS(gadm63, file="./vietnam/geo63.rds") ``` ## Bản đồ Việt Nam ```{r eval=FALSE} geo63 <- readRDS("./vietnam/geo63.rds") spplot(geo63, "ID_1", main="63 tỉnh") ``` ![Việt Nam](../figures/ban-do-viet-nam-in-r/geo63.png){: .fig} Tải tệp [`geo63.rds`](http://raw.githubusercontent.com/hochanh/rblog/gh-pages/_knitr/vietnam/geo63.rds).