栅格中从数字到因子的转换错误:1中的错误:ncol(r):长度为0的参数,r命令:as.factor()

时间:2014-05-06 16:50:59

标签: r type-conversion raster file-conversion r-factor

我想知道如何解决光栅文件的以下转换问题:当我尝试通过as.factor(r)将栅格(r)中的值从数字转换为因子时,总会出现错误:& #34; 1中的错误:ncol(r):长度为0"

的参数
r <- raster(ncol=5, nrow=5)
values(r) <- 1:ncell(r)
as.factor(r)

我必须弄清楚如何将数字栅格转换为因子栅格,以便在栅格包中进行predict()计算。

1 个答案:

答案 0 :(得分:1)

迟到总比不回答?也许这对其他人有帮助。

错误,例如Error in 1:ncol(r) : argument of length 0似乎是真实的,并且至少有一篇论坛帖子说这是因为包裹作者使用的是ncol()而不是seq_along();但我认为它可以解决。如果您查看raster::as.factor()文档中的示例,您将看到上面的代码示例后面的后续步骤;

r <- raster(nrow=10, ncol=10) # make a raster
r[] <- runif(ncell(r)) * 10 # assign it values
is.factor(r) # see that it is not a factor
r <- round(r) # round to make values to be facotrs
f <- as.factor(r) # this is the point you ended above
is.factor(f) # this will show that it is a factor
x <- levels(f)[[1]] # these steps create the factor levels
x
x$code <- letters[10:20] # use your own factor codes here
levels(f) <- x # assigns the levels to the raster
levels(f)
f # you will see the error replaced with factor levels