2017-08-02 125 views
3

我目前將原始矩陣轉換爲光柵以使用聚焦函數,然後我想將光柵轉換回矩陣。但是當我嘗試使用柵格函數as.matrix()時,我有一條錯誤消息。 即使有這種很簡單的例子:將光柵轉換爲矩陣與R

r <- raster(ncol=3, nrow=3) 
r[] <- 1:ncell(r) 
as.matrix(r) 

這裏是我的了:

錯誤陣列(X,C(長度(X),1L),如果(is.null(!名稱(X)))列表(名稱(x)中,:

'dimnames' 的

長度[1]不等於陣列程度

我使用RSTUDIO,R 3.4.0版和ncdf4rasterrgdal librairies。

謝謝你的幫助。

回答

4

確保您使用raster程序包中的as.matrix函數,而不是基本版本。

我假設你libraryrequire裝包:

library(raster) 
r <- raster() 
r[] <- 1:ncell(r) 

當我使用as.matrix,它的工作原理:

> str(as.matrix(r)) 
int [1:180, 1:360] 1 361 721 1081 1441 1801 2161 2521 2881 3241 ... 

當您使用的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 

因此,如果只加載庫不適合你,請嘗試調用這樣的功能:raster::as.matrix(r)

+0

問題解決了,謝謝... –