整洁功能不适用于USAboundaries shapefile数据

时间:2018-05-24 16:01:41

标签: r broom

我不理解错误是什么,因为tidy函数可以正常使用其他shapefile,USAboundaries是否遗漏了什么?

library(USAboundaries)
library(broom)

states_dat <- tidy(us_states(), region = "geoid")

##> states_dat <- tidy(us_states(), region = "geoid")
##Error in psych::describe(x, ...) : unused argument (region = "geoid")

head(us_states()[4],3)

##> head(us_states()[4],3)
##   geoid
##1     23
##2     15
##3     04

1 个答案:

答案 0 :(得分:1)

us_states()返回一个sf对象。 tidy没有sf个对象的方法,而是使用data.frame方法。另一方面,tidy具有来自sp包的各种类的方法,这可能是它“与其他shapefile一起正常工作”的原因。 (见help(sp_tidiers)。)

要使用现有代码,您可以将us_states()输出转换为Spatial对象:

library(sf)
states <- as(us_states(), "Spatial")
states_dat <- tidy(states, region = "geoid")

要了解如何使用sf框架中的tidy个对象,您可能会发现http://strimas.com/r/tidy-sf/有帮助。