将栅格数据转换为R中的因子

时间:2014-08-30 15:18:19

标签: r r-raster

我已将光栅文件导入R - 它是分类的,有两个值,0和1。 我需要将它存储为一个因素。

我尝试了以下内容:

#as.factor when importing 
mydata.factor <- as.factor(raster("mydata.tif"))

#or import first then try converting
mydata <- raster(mydata.tif)
mydata.factor <- as.factor(mydata)

#or call just values 
mydata <- raster(mydata.tif)
mydata$values <- as.factor(mydata$values)

#or based on the example in the Raster package, something like this
mydata <- raster(mydata.tif)
mydata.factor <- as.factor(mydata)
mydata.factorlevels <- levels(mydata.factors)[[1]]

我无法得到我想要的东西,这是一个被调用到另一个函数的层(包spdedp中的joincount.multi函数)被认为是一个因素。任何提示将非常感谢!

2 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,只需1.转换为点(存储为矩阵),然后2.转换为数据帧,然后3.将感兴趣的变量转换为因子。

mydatasp <- rasterToPoints(mydata)
mydatadf <- as.data.frame(mydatasp)
mydatadf$variable <- as.factor(mydatadf$variable)

我不知道如何将数据保存为栅格。

答案 1 :(得分:0)

我对ratifyas.factor玩得不多,但它们可能很有用: https://web.archive.org/web/20151109014439/http://www.inside-r.org/packages/cran/raster/docs/asFactor