2014-08-30 44 views
1

我已经将栅格文件导入到R中 - 它是分类的,有两个值0和1. 我需要将它作为因子存储。将栅格数据转换为R中的因子

我曾尝试以下:

#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功能)是公认的一个因素。任何提示将非常感谢!

回答

0

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

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

我不知道有一种方法可以将数据保持为栅格。