我没有你的样本数据。因此,我在这里提供的内容将在某些方面对您有所帮助。如果您需要针对您的具体情况的帮助,请提供下次的示例数据。这有助于 SO 用户帮助您。
我选择俄勒冈州作为样本 sf 对象。多边形数据来自 albersusa 包。然后,我创建了随机点。如果您绘制 ggplot 图形,您会看到点在哪里。st_intersects()
检查每个数据点属于哪个多边形并返回一个矩阵。在这种情况下,每一列代表一个县,每一行代表一个数据点。因此,您会看到 36 列和 20 行。
library(sf)
library(albersusa)
mystate <- counties_sf() %>%
filter(state == "Oregon")
# This is a random data set
set.seed(111)
mysample <- st_sample(x = mystate, size = 20)
ggplot() +
geom_sf(data = mystate) +
geom_sf(data = mysample)
# Now I want to find data points in Washington states
check <- st_intersects(x = mysample,
y = mystate,
sparse = FALSE)
colnames(check) <- mystate$name
我在这里留下了矩阵的一部分。
Deschutes Jefferson Lake Polk Wheeler Benton Clackamas Coos Crook Gilliam Hood River Jackson Josephine
[1,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[2,] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[3,] FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[4,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
[5,] FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[6,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE