R:无法为签名'“data.frame”找到函数'spplot'的继承方法

时间:2018-05-02 21:40:15

标签: r

我正在尝试使用R中的spplot函数创建一个地图。

我已经加载了执行此功能所需的不同库:

> library(mosaic)
> library(latticeExtra)

我读过两个数据框。第一个是CENSUS,是一个包含8个不同特征的表,用于城市中的33个病区。其中一个是Townsend剥夺指数。第二个是DISTRICT,它是一个包含这些病房多边形数据的SpatialPolygonsDataFrame。

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

我想为不同的病房映射Townsend指数。

为此,我已将两个数据框合并为一个新数据Census_shape,然后将spplot函数应用于此新数据框。

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

但是,当我这样做时,我会收到此警告。

  

(函数(classes,fdef,mtable)中的错误:     无法为签名'“data.frame”'

找到函数'spplot'的继承方法

错误来自哪里?这是我的代码中的东西。是否更有可能是我的数据框的属性不适用于spplot?

坦克,任何建议都会有很大帮助。

1 个答案:

答案 0 :(得分:0)

这几乎可以肯定是因为merge吐出一个数据帧,这并不奇怪,因为你正在为它提供两个数据帧(DISTRICT@data只是较大的DISTRICT内的数据帧空间对象)。

如果您合并数据以将其保存为SpatialPolygonsDataFrame(或其他),则spplot将照常工作。请注意,sp包中包含merge空间数据方法,请参阅?sp::merge

另请注意:可能想要切换到更现代的sf软件包 - 根据我的经验,它更容易使用。