Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R保持点在一个多边形内_R_Overlay_Spatial - Fatal编程技术网

R保持点在一个多边形内

R保持点在一个多边形内,r,overlay,spatial,R,Overlay,Spatial,我有两个目标: pts=readOGR(dsn="overpass-turbo/shp/",layer="amenity") poly=readOGR(dsn="overpass-turbo/shp/",layer="polygons") 像 因此,我将拥有一个空间数据框架,其中包含polgygon中的所有点。。。 我已经找到了一些东西,但它不能像我想要的那样工作 a<-over(pts, poly) a不完全确定您到底想要什么,但我假设poly是您选择的空间数据帧。 如果要计算多边

我有两个目标:

pts=readOGR(dsn="overpass-turbo/shp/",layer="amenity")
poly=readOGR(dsn="overpass-turbo/shp/",layer="polygons")

因此,我将拥有一个空间数据框架,其中包含polgygon中的所有点。。。 我已经找到了一些东西,但它不能像我想要的那样工作

a<-over(pts, poly)

a不完全确定您到底想要什么,但我假设
poly
是您选择的空间数据帧。 如果要计算多边形中的点数,我认为必须执行以下操作:

pts_in=over(SpatialPolygons(poly@polygons,SpatialPoints(pts),
                returnlist=TRUE)
poly$npoints<-unlist(lapply(pts_in,length)

您还可以查看一些有用的提示。

我还找到了更多的提示:-)


pts_inHi,我添加了一个图像。。。我想删除多边形外的所有点。因此,如果使用计算多边形内点的方法,则不会计算多边形外的点。如果使用创建对应列表的方法(
pts$nrow
),只需从数据帧中删除
pts$nrow
NA
,即可排除多边形外的点。不确定这是否有效。我犯了一个错误。最好使用这个:
pts$nrow=over(SpatialPoints(pts),SpatialPolygons(poly@polygons),
          returnlist=TRUE)
pts_in<-pts[!is.na(over(pts,poly)),]