Я недавно начал работать с картами, и теперь я чувствую, что "я почти там" Интернет - удивительный инструмент, когда у нас есть вопросы, связанные с R, но кажется, что сценарии 2014/2015 годов устарели, чтобы делать то, что я хочу. Я перешел по этой ссылке и по этой ссылке безуспешно.
Допустим, у нас есть файл "карты", который я могу легко построить
library(tidyverse)
library(rgdal)
map <- readOGR("mapa", "UFEBRASIL", encoding = "utf-8")
ideal_map <- fortify(map)
ggplot() +
geom_path(data = ideal_map,
aes(x = long, y = lat, group = group),
colour = "black") )
[На всякий случай, если вы хотите загрузить этот файл readOGR, https://www.dropbox.com/s/vnpwwxh471ttaop/map.zip?dl=0]
![Brazil -- Map](https://i.stack.imgur.com/YNGoC.png)
И теперь я хочу вставить в эту карту некоторую дополнительную информацию, такую как имя каждого состояния ( NM_ESTADO ) и конкретное значение ( Доблесть ) в середине поля. государство. Эта информация собрана в другом наборе данных с такими же именами столбцов:
> dados %>% names
[1] "NR_REGIAO" "Sigla" **"NM_ESTADO"** "Valor"
> head(map@data,1)
ID CD_GEOCODU **NM_ESTADO** NM_REGIAO
0 1 11 RONDÔNIA NORTE
Теперь приходит главный вопрос:
Когда я объединяю оба набора данных, а затем продолжаю использовать функцию укрепления, кажется, что добавленная новая информация просто исчезает:
#merge
ideal_map2 <- merge(map, dados,by.x = "NM_ESTADO", by.y = "NM_ESTADO")
ideal_map2@data
ideal_map <- fortify(ideal_map2)
head(ideal_map)
long lat order hole piece id group
1 -63.32721 -7.976720 1 FALSE 1 0 0.1
2 -63.11838 -7.977107 2 FALSE 1 0 0.1
Итак, как мне идти?
Спасибо!
Если вам нужен файл моего набора данных для запуска кодов, см. Ниже:
dados <- structure(list(NR_REGIAO = c("NORTE", "NORTE", "NORTE", "NORTE",
"NORTE", "NORTE", "NORTE", "NORDESTE", "NORDESTE", "NORDESTE",
"NORDESTE", "NORDESTE", "NORDESTE", "NORDESTE", "NORDESTE", "NORDESTE",
"CENTRO-OESTE", "CENTRO-OESTE", "CENTRO-OESTE", "CENTRO-OESTE",
"SUDESTE", "SUDESTE", "SUDESTE", "SUDESTE", "SUL", "SUL", "SUL"
), Sigla = c("AC", "AP", "AM", "PA", "RO", "RR", "TO", "AL",
"BA", "CE", "MA", "PB", "PE", "PI", "RN", "SE", "DF", "GO", "MT",
"MS", "ES", "MG", "RJ", "SP", "PR", "SC", "RS"), NM_ESTADO = c("ACRE",
"AMAPÁ", "AMAZONAS", "PARÁ", "RONDÔNIA", "RORAIMA", "TOCANTINS",
"ALAGOAS", "BAHIA", "CEARÁ", "MARANHÃO", "PARAÍBA", "PERNAMBUCO",
"PIAUÍ", "RIO GRANDE DO NORTE", "SERGIPE", "DISTRITO FEDERAL",
"GOIÁS", "MATO GROSSO", "MATO GROSSO DO SUL", "ESPIRITO SANTO",
"MINAS GERAIS", "RIO DE JANEIRO", "SÃO PAULO", "PARANÁ", "SANTA CATARINA",
"RIO GRANDE DO SUL"), Valor = c("16", "13", "5", "40", "60",
"10", "20", "19", "89", "62", "27", "20", "84", "26", "17", "107",
"143", "86", "78", "79", "70", "285", "109", "169", "181", "159",
"322")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-27L))