[英]calculating areas of polygons in R in a for loop
親愛的stackoverflow的人們。
我正在嘗試計算SPDF的每個單獨的多邊形的面積。 我正在嘗試使其發揮作用,使我可以將數據放入其中並獲得區域列表。 我堅持創建一個for循環,該循環返回多邊形的所有區域。 對於一個多邊形的表面計算,以下代碼適用:
surfacefirstpolygon <- gArea(inputSPDF[1,1])
當我運行以下代碼時,此代碼將一一打印。
polys <- slot(inputSPDF,"polygons")
for(i in 1:length(polys)){
print(i)
}
然后,通過執行以下操作,嘗試將這些代碼段放在for循環中:
polys <- slot(inputSPDF,"polygons")
areasofpolygons <- for(i in 1:length(polys)){
gArea(inputSPDF[i,i])
}
這不起作用,並給我以下錯誤。
is.projected(spgeom)中的錯誤:在選擇函數'is.projected'的方法時評估參數'obj'時出錯: [.data.frame
(x @ data,i,j,...,drop)中的錯誤= FALSE):未選擇的列。
有人知道出了什么問題嗎?
結果=
dd = dim(inputSPDF)
for(i in 1:dd[1]){
areasofpolygons[i] <- gArea(inputSPDF[i,1])
}
嘗試:
dd = dim(inputSPDF)
for(i in 1:dd[1]) for(j in 1:dd[2]){
areasofpolygons[length(areasofpolygons)+1] = gArea(inputSPDF[i,j])
}
areasofpolygons
問題中提到的錯誤可能表明我超出了尺寸(“選擇了未定義的列”)。 同樣,如果使用[i,i],則只能訪問相同的行號和列號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.