簡體   English   中英

在for循環中計算R中多邊形的面積

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM