我目前正在将原始矩阵转换为光栅以使用焦点功能,然后我想将光栅转换回矩阵.但是当我尝试使用栅格函数as.matrix()时,我有一条错误消息.即使有这个非常简单的例子:
r <- raster(ncol=3, nrow=3)
r[] <- 1:ncell(r)
as.matrix(r)
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
数组中的错误(x,c(length(x),1L),if(!is.null(names(x)))list(names(x),):
'dimnames'[1]的长度不等于数组范围
我使用RSTUDIO,R版本3.4.0和ncdf4,raster和rgdallibrairies.
谢谢您的帮助.
Val*_*Val 10
确保您使用的as.matrix是raster包中的功能,而不是基本版本.
我假设你用library或加载了包裹require:
library(raster)
r <- raster()
r[] <- 1:ncell(r)
Run Code Online (Sandbox Code Playgroud)
当我使用时as.matrix,它的工作原理:
> str(as.matrix(r))
int [1:180, 1:360] 1 361 721 1081 1441 1801 2161 2521 2881 3241 ...
Run Code Online (Sandbox Code Playgroud)
当您使用基本版本时as.matrix,您将收到以下错误消息:
> base::as.matrix(r)
Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x), :
length of 'dimnames' [1] not equal to array extent
Run Code Online (Sandbox Code Playgroud)
因此,如果仅加载库不适合您,请尝试调用以下函数: raster::as.matrix(r)