我认为我想做的事很基本,但实际上找不到解决方法。
基本上,我想从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”的适用于“列表”类对象的方法
非常欢迎您从哪里开始寻找内容或进行编码。