如何从r中的美国边界包中提取新墨西哥州



我正在尝试用两点制作Tmap,但我遇到了一些问题。

`library(tmap) 
library(maps)
library(sf)
library(USAboundaries)
#Open soil pit location data
data<-read.csv("SoilPit_Locations___.csv")
#Converting locations to an sf object
points<-st_as_sf(data,coords=c("Longitude","Latitude"),crs=4326)
#Set up map mode as view for an interactive map
tmap_mode("plot")
#Set up style as natural to view topography
tmap_style("natural")
#Map us borders and add points for locations as dots
#tm_shape(us) + tm_borders("black", lwd = .5) + 
m=tm_shape(points)+tm_dots() 
m
tmap_save(m, "my_mapp.png")`

我遇到的问题是,当我尝试运行我的代码的两个点是在地图的角落,我想把它们绘制在新墨西哥州的地图上,这样他们可以看起来更好。

我已经尝试从世界地图中提取NM状态边界,但是我没有成功。

如果你这样做了:

library(USAboundariesData)

那么你得到states_contemporary_lores(以及其他东西),这是美国的州边界,所以你可以像这样子集NM:

nm = states_contemporary_lores[
states_contemporary_lores$state_abbr=="NM",
]

然后nm是一个sf对象也就是新墨西哥。您可以使用tm_shape(nm) + tm_borders()tmap中映射它,然后添加您拥有的任何其他图层。