我试图概述美国各州的特定人口普查区分组。
这是我尝试运行的代码:
sf_states <- sf::st_as_sf(fifty_states, coords = c("long", "lat")) %>%
group_by(id, piece) %>%
summarize(do_union = FALSE) %>%
st_cast("POLYGON") %>%
ungroup()
illinois <- sf_states %>%
filter(id == "illinois")
arlington.crs <- arlington.test %>%
st_set_crs(4326)
ggplot() +
theme_minimal() +
geom_sf(data = illinois) +
geom_sf(data = arlington.crs, col = "green", alpha = 0, size = 2)
Run Code Online (Sandbox Code Playgroud)
数据arlington.test来自tidycensus包,包括每个人口普查区域的相关几何图形。
但是,当我运行代码时,出现以下错误:
Error in st_transform.sfc(st_geometry(x), crs, ...) :
cannot transform sfc object with missing crs
Run Code Online (Sandbox Code Playgroud)
我尝试了在 StackOverflow 上遇到的数十个不同的答案,但似乎没有任何方法可以解决这个问题。
更奇怪的是,我可以geom_sf使用 ggplot 分别运行这两个函数,并且它们的绘图效果很好。
仅当我尝试将它们一起运行时才会发生该错误,如上面包含的代码所示ggplot。
还有其他想法/想法吗?
提前致谢。
编辑(回答下面的问题):
> sf::st_crs(arlington.test)
Coordinate Reference System:
User input: NAD83
wkt:
GEOGCRS["NAD83",
DATUM["North American Datum 1983",
ELLIPSOID["GRS 1980",6378137,298.257222101,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["latitude",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["longitude",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4269]]
>
Run Code Online (Sandbox Code Playgroud)