цикл или * применить для запуска нескольких st_intersects между двумя списками объектов - PullRequest
0 голосов
/ 03 июля 2019

Я думаю, что я хочу сделать довольно просто, но на самом деле не могу найти способ сделать это.

В основном я хочу извлечь все полигоны из A1 (шейп-файл ESRI), которые пересекают A2 (т.е.Шейп-файл ESRI), где A1 - это один многоугольник, представляющий распределение подвидов, а A2 - все страны, где встречаются виды. Идея состоит в том, чтобы извлечь список стран, в которых существует подвид.Моя проблема в том, что мне нужно сделать это для нескольких «пар» подвид-вид, то есть A1-A2, B1-B2, C1-C2 ... X1-X2.

Простой бит кода может выполнить работу для одной "пары" (A1-A2):

library(sf)

int <- st_intersects(A1, A2)
int

# extract the names of the countries
int$country <- as.character(A2$country[unlist(int)])
int[["country"]]


To run over multiple "pairs" I though of creating 2 lists: 
subsp <- c(A1, B1, C1 ... X1)

sps <- c(A2, B2, C2 ... X2)

#and then using *apply:

lapply(mcps, function(x) st_intersects(subsp, sps))

#however, I'm getting the following error, and have no idea how can I     solve this:

Ошибка в UseMethod ("st_intersects"): нет подходящего метода для st_intersects'применяется к объекту класса "список"

Любая помощь в том, где начать искать или с кодированием будет очень приветствоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...