R: не удалось найти унаследованный метод для функции "spplot" для подписи "data.frame" - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь создать карту с помощью функции spplot в R.

Я загрузил разные библиотеки, необходимые для выполнения этой функции:

> library(mosaic)
> library(latticeExtra)

Я прочитал в двух фреймах данных. Первая, CENSUS, представляет собой таблицу, содержащую 8 различных характеристик для 33 подопечных в городе. Одним из них является индекс лишения Таунсенда. Вторым, DISTRICT, является SpatialPolygonsDataFrame, содержащий данные о многоугольниках для этих приходов.

> DISTRICTS=readShapePoly("DISTRICTS.shp")
> CENSUS=read.csv("CENSUS.csv")

Я хочу отобразить индекс Таунсенда для разных приходов.

Для этого я объединил два фрейма данных в новый, Census_shape, а затем применил функцию spplot к этому новому фрейму данных.

> Census_shape=merge(DISTRICTS@data,CENSUS, by.x="name", by.y="WARD", sort=FALSE)
> spplot(Census_shape, "TOWNSEND")

Однако, когда я делаю это, я получаю это предупреждение.

Ошибка в (функция (классы, fdef, mtable): невозможно найти унаследованный метод для функции "spplot" для подписи "data.frame"

Откуда берется ошибка? Это что-то в моем коде. Это скорее свойство моих фреймов данных, которое не работает с spplot?

Любой совет очень помог бы, танки.

1 Ответ

0 голосов
/ 03 мая 2018

Это почти наверняка, потому что merge выплевывает фрейм данных, что неудивительно, потому что вы подаете ему два фрейма данных (DISTRICT@data - это просто фрейм данных в более крупном DISTRICT пространственном объекте).

Если вы объединяете свои данные, чтобы сохранить их как SpatialPolygonsDataFrame (или что-то еще), то spplot будет работать как обычно. Обратите внимание, что пакет sp включает метод merge для пространственных данных, см. ?sp::merge.

Обратите внимание: вы можете захотите перейти на более современный пакет sf - по моему опыту, им проще пользоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...