我正在尝试从程序R中的SpatialPolygonsDataFrame
创建多边形列表。我想在for
循环中使用此多边形列表,以确定动物何时访问了多边形弹道。使用R中getRecursionsInPolygon()
包中的recurse
函数。我需要将其作为多边形列表,因为getRecursionsInPolygon()
函数一次只能在一个多边形上工作。
这是我的head
中的SpatialPolygonsDataFrame
。
structure(list(Id = 1:6, Size__sq_m = c(6886L, 5578L, 16750L,
14274L, 15194L, 4882L), FP_Type = c("Summer", "Summer", "Summer",
"Winter", "Both", "Summer"), Lat = c(32.6390865966, 32.6360069165,
32.6391750444, 32.6372529261, 32.6359054154, 32.6377978275),
Long = c(-90.199481333, -90.2011287155, -90.1957678438, -90.1982750261,
-90.1938361696, -90.1903029072), Count = c(1, 1, 1, 1, 1,
1), Size_Acres = c(1.70147478152, 1.37829500148, 4.1390108439,
3.52708393966, 3.75446924007, 1.20629786829)), row.names = 0:5, class = "data.frame")
projection(fp)
[1] "+proj=longlat +datum=WGS84 +no_defs"
我正在尝试通过以下方式列出清单:
#Making list of polygons
polyl <- list(fp@polygons)
但是,当我将其放入for循环中时:
for (i in length(polyl)){
res <- getRecursionsInPolygon(animal, polyl[[i]])
res <- as.data.frame(res$revisitStats)
if(i==1)
{
stats <- res
}
else
{
stats <- rbind(stats,res)
}
}
我得到了错误:
getRecursionsInPolygon.data.frame(xyt,多边形,阈值,时间单位,: Inherits(polygon,“ SpatialPolygons”)不是TRUE。
我不确定如何使列表真正成为for循环中要使用的多边形。欢迎其他可能的解决方案。
谢谢