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/ 很有帮助。
我不明白错误是什么,因为 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/ 很有帮助。