You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

R语言报错:无法找到适用于data.frame类型的spplot继承方法

解决spplot函数针对data.frame的报错问题

嘿,这个报错我太熟了!原因其实特别直白——spplot是专门为空间对象(比如你手里的SpatialPolygonsDataFrame)设计的绘图工具,它根本不认识普通的data.frame类型数据,所以才会抛出“找不到继承方法”的错误。你应该是不小心把CENSUS这个普通数据框直接传给spplot了对吧?

别着急,按照下面两步操作就能搞定:

  • 第一步:把属性数据关联到空间多边形对象上
    空间多边形数据框(SpatialPolygonsDataFrame)的@data字段就是用来存储对应区域的属性数据的,我们需要把CENSUS里的特征合并进去。假设两个数据有共同的选区标识符(比如叫district_id的列),用merge函数就能完成:

    # 请根据实际匹配列名修改by参数,列名不同的话用by.x和by.y分别指定
    DISTRICTS_merged <- merge(DISTRICTS, CENSUS, by = "district_id")
    

    合并后可以用head(DISTRICTS_merged@data)检查一下,确认Townsend剥夺指数这类属性已经出现在空间对象的属性表里了。

  • 第二步:用合并后的空间对象调用spplot
    现在把合并好的SpatialPolygonsDataFrame传给spplot,指定要可视化的属性列就行:

    # zcol指定要映射颜色的属性列,这里填你CENSUS里的Townsend列名
    spplot(DISTRICTS_merged, zcol = "Townsend")
    

这样应该就能顺利画出带剥夺指数的选区地图啦!

内容的提问来源于stack exchange,提问作者Benjamin

火山引擎 最新活动