2

我已经将一个光栅文件导入到 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 函数)时被识别为一个因素的层。任何提示将非常感谢!

4

2 回答 2

0

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

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

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

于 2014-08-30T21:11:03.003 回答
0

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

于 2016-08-02T22:27:31.007 回答