我有两个列表;它们都包含gpc.poly类的多边形。使用apply将列表A中的所有多边形与列表B中的所有多边形相交r
第一清单 “ptareas”:
> ptareas
$AG00035
GPC Polygon
Num. Contours: 1
Num. Vertices: 2000
BBox (X): 5.999999 --> 6.000001
BBox (Y): 11 --> 11
$AG00036
GPC Polygon
Num. Contours: 1
Num. Vertices: 2000
BBox (X): 9.999999 --> 10
BBox (Y): 4.999999 --> 5.000001
第二个列表 “isect_polys”:
> isect_polys
[[1]]
GPC Polygon
Num. Contours: 2
BBox (X): 4.928932 --> 25.07107
BBox (Y): -2.071068 --> 25.07107
[[2]]
GPC Polygon
Num. Contours: 1
Num. Vertices: 1028
BBox (X): 4.928932 --> 11.23867
BBox (Y): 3.953478 --> 12.02995
[[3]]
GPC Polygon
Num. Contours: 2
BBox (X): 4.928932 --> 25.07107
BBox (Y): -2.071068 --> 25.07107
[[4]]
GPC Polygon
Num. Contours: 1
Num. Vertices: 1028
BBox (X): 4.928932 --> 11.23867
BBox (Y): 3.953478 --> 12.02995
[[5]]
GPC Polygon
Num. Contours: 2
BBox (X): 4.928932 --> 25.07107
BBox (Y): -2.071068 --> 25.07107
[[6]]
GPC Polygon
Num. Contours: 1
Num. Vertices: 1028
BBox (X): 4.928932 --> 11.23867
BBox (Y): 3.953478 --> 12.02995
我想什么(不及格)做的是非常简单的。我想在ptareas中将每个多边形与isect_polys中的每个多边形相交。在实践中,每个列表的长度会有所不同每次运行脚本的时候,但在这个例子中,我试图找到一种方法来自动执行以下操作:
intersect(ptareas[[1]],isect_polys[[1]])
intersect(ptareas[[1]],isect_polys[[2]])
intersect(ptareas[[1]],isect_polys[[3]])
intersect(ptareas[[1]],isect_polys[[4]])
intersect(ptareas[[1]],isect_polys[[5]])
intersect(ptareas[[1]],isect_polys[[6]])
intersect(ptareas[[2]],isect_polys[[1]])
intersect(ptareas[[2]],isect_polys[[2]])
intersect(ptareas[[2]],isect_polys[[3]])
intersect(ptareas[[2]],isect_polys[[4]])
intersect(ptareas[[2]],isect_polys[[5]])
intersect(ptareas[[2]],isect_polys[[6]])
如果我正在处理矩阵,我倒是只是让ptareas一列矩阵,isect_polys一个行矩阵,然后做一些类似于下面的矩阵乘法:
> m1<- matrix(c(1,2),2,1)
> m1
[,1]
[1,] 1
[2,] 2
> m2<- matrix(c(1:6),1,6)
> m2
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 5 6
> m1 %*% m2
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 5 6
[2,] 2 4 6 8 10 12
不幸的是,我不能力R,让我把多边形的名单以同样的方式,所以我希望有人能够解释如何使用其中一个应用函数实现同样的成对交互。作为新手用户,我发现这些功能在处理多个列表时很难实现。由于在以前的文章中我找不到类似的例子,其他人一定能够轻松地解决类似的双列表问题,而且我相当肯定我错过了一些非常基本的东西。任何帮助将不胜感激。
这工作完美; seq_along函数是我以前从未见过的位。感谢您花费我几个小时的问题的优雅解决方案。 – user2047457