Я хочу добавить точки данных, которые находятся в пределах геометрии объекта SF.Хотите знать, каков подход для достижения этой цели с пакетом sf
?Любые намеки, пожалуйста.
library(tidyverse)
library(maps)
library(sf)
us_map <-
map_data('state') %>%
st_as_sf(coords = c("long", "lat"))
set.seed(12345)
df1 <-
tibble(
long = runif(n = 1000, min = -130, max = -50)
, lat = runif(n = 1000, min = 20, max = 60)
, y = runif(n = 1000, min = 0, max = 500)
) %>%
st_as_sf(coords = c("long", "lat"))
Data1 <-
sf::st_join(
x = us_map
, y = df1
, join = st_intersects
# , FUN
, suffix = c(".x", ".y")
# , ...
, left = TRUE
, largest = FALSE
)
Data <-
Data1 %>%
mutate(yf = if_else(condition = between(x = y, left = 0, right = 200), true = "0-200", false = "200-500", missing = NULL))
plot(Data$geometry)
plot(df1$geometry, add = TRUE)
plot(Data["yf"])