Добавление и отображение только тех точек данных, которые находятся в пределах геометрии объекта SF - PullRequest
0 голосов
/ 28 апреля 2019

Я хочу добавить точки данных, которые находятся в пределах геометрии объекта 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"])

enter image description here

...