计算for循环中R中多边形的面积

时间:2014-09-03 08:40:41

标签: r polygons surface

亲爱的stackoverflow人。

我正在尝试计算SPDF的每个单独多边形的面积。我正在尝试创建它的功能,它允许我将数据放入并获取区域列表。我很难创建一个返回我的多边形的所有区域的for循环。对于一个多边形的曲面计算,以下代码有效:

surfacefirstpolygon <- gArea(inputSPDF[1,1])

当我运行以下代码时,此代码逐个打印i。

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)出错:   评估论证的错误&#39; obj&#39;选择函数的方法&#39; is.projected&#39 ;: [.data.frame中的错误(x @ data,i,j,...,drop = FALSE):   选择了未定义的列。

有人知道出了什么问题吗?

结果=

dd = dim(inputSPDF) 
for(i in 1:dd[1]){ 
   areasofpolygons[i] <- gArea(inputSPDF[i,1]) 
}

1 个答案:

答案 0 :(得分: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],则只能访问相同的行号和列号。