Tidy 函数不适用于 USABoundaries shapefile 数据

Tidy function is not working with USAboundaries shapefile data

我不明白错误是什么,因为 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

us_states() returns 一个科幻对象。 tidy 没有用于 sf 对象的方法,而是使用 data.frame 方法。另一方面,tidy 有来自 sp 包的各种 类 的方法,这可能就是它 "works fine with other shapefiles." 的原因(参见 help(sp_tidiers)。)

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

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

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