R ggplot2 объединяет данные шейп-файла и csv для заполнения полигонов

Мы ежедневно выпускаем карты, которые показывают рассчитанный уровень температуры в 30 различных областях нашего региона, каждая область заполняется разным цветом в зависимости от уровня. Эти карты выглядят как

Теперь я хочу переключить генерацию карты на R. I 'Вы скачали провинциальные и муниципальные границы (вы можете найтиграницы для всей Испании или здесьподмножество для моего региона) и сумел построить их с помощью ggplot2 после Хэдлипример.

Я также могу создать файл ascii, который содержит два столбца: идентификатор (CODINE) и дневной уровень. Вы можете скачатьВот.

Это мой первый скрипт, в котором я пытаюсь построить шейп-файлы с помощью R и ggplot2, поэтому возможны ошибки, и, безусловно, их можно улучшить, предложения приветствуются. Следующий код (на основе Hadley 'как уже упоминалось) у меня работает:

> require("rgdal")
> require("maptools")
> require("ggplot2")
> require("plyr")

# Reading municipal boundaries

esp = readOGR(dsn=".", layer="lineas_limite_municipales_etrs89")

muni=subset(esp, esp$PROV1 == "46" | esp$PROV1 == "12" | esp$PROV1 == "3")
muni@data$id = rownames(muni@data)
muni.points = fortify(muni, region="id")
muni.df = join(muni.points, muni@data, by="id")

# Reading province boundaries

prov = readOGR(dsn=".", layer="poligonos_provincia_etrs89")

pr=subset(prov, prov$CODINE == "46" | prov$CODINE == "12" | prov$CODINE == "03" )
pr@data$id = rownames(pr@data)
pr.points = fortify(pr, region="id")
pr.df = join(pr.points, pr@data, by="id")

ggplot(muni.df) + aes(long,lat,group=group) + geom_path(color="blue") +
+ coord_equal()+ geom_path(data=pr.df, + 
aes(x=long, y=lat, group=group),color="red", size=0.5) 

Этот код строит красивую карту со всеми границами

Для заполнения полигонов по уровням я попытался прочитать, а затем объединить, как предложено вhttp://tormodboe.wordpress.com/2011/02/22/g%C3%B8y-med-kart-2/

Уровень = read.csv (»levels.dat», Заголовок = Т, сентябрь =» «)

munlevel = слияние (muni.df, уровень, от =»CODINE ")

но это дает ошибку

Ошибка en fix.by (by.x, x): 'от' необходимо указать уникально допустимый столбец

Я не знаком с шейп-файлами, возможно, мне нужно больше узнать об атрибутах данных shp, чтобы найти правильный выбор для объединения обоих наборов данных. Как я могу объединить данные, чтобы я мог построить линии (муниципальные границы) и затем заполнить их уровнями?

Ответы на вопрос(1)

Ваш ответ на вопрос