循环或*应用以在两个对象列表之间运行多个st_intersects

时间:2019-07-03 09:24:50

标签: iteration sf

我认为我想做的事很基本,但实际上找不到解决方法。

基本上,我想从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”的适用于“列表”类对象的方法

非常欢迎您从哪里开始寻找内容或进行编码。

0 个答案:

没有答案