亲爱的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])
}
答案 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],则只能访问相同的行号和列号。