我想将多边形数据和栅格数据合并到一个数据帧中,然后使用R中的randomForests包.
这包括首先提取每个多边形的平均栅格值.
到目前为止,我有以下内容:
#load libraries
library(raster)
library(rgdal)
library(sp)
library(maptools)
#import raster data
r <- raster("myRasterdata.tif")
#import polygon data
p <- readShapePoly("myPolydata.shp")
#extract mean raster value for each polygon
ExtractMyData <- extract(r, p, small=TRUE, fun=mean, na.rm=TRUE, df=FALSE, nl=1, sp=TRUE)
# note I have also tried this with df=TRUE and sp=FALSE
Run Code Online (Sandbox Code Playgroud)
输出是一个矩阵,我可以写入数据帧.但它没有空间坐标或原始多边形ID,所以我不知道如何将输出连接到同一个数据库.我认为sp = TRUE参数会这样做,但它似乎不起作用.
请注意,为了RandomForests的目的,我实际上必须将多边形转换为点(使用质心方法?),所以我猜猜我真正想要的是加入连接到点而不是多边形的平均栅格值.
任何建议将不胜感激.谢谢!!
文件说cutoff是"一个长度等于类数的向量.观察的'获胜'类是投票比例与截止比例的最大比例.默认为1/k,其中k是类的数量(即多数票获胜)."
我想实现0.6或0.7的概率截止值而不是0.5的默认值.
RFfit <- randomForest(Y ~ x1 + x2 + x3 + x4 + x5, data=mydata, mytry=2, ntrees=500,
cutoff = x)
Run Code Online (Sandbox Code Playgroud)
我试过x的各种值.0.6,6,12,1.2 ......似乎都没有用.我还在我的数据中添加了一个名为"cutoff"的列,其中所有值都是= 0.6,并尝试将其调用到代码中,但这也不起作用.
如何正确使用截止参数?