我有兩個列表;它們都包含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