Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中的ncdf文件提取值时出错_R_Extract_Ncdf4 - Fatal编程技术网

从R中的ncdf文件提取值时出错

从R中的ncdf文件提取值时出错,r,extract,ncdf4,R,Extract,Ncdf4,我编写了一个从ncdf文件中提取值的函数,如下所示: precresults <- function(x){ library(magrittr) library(ncdf4) library(raster) library(ncdf.tools) ##library(ncf) re1 <- brick(nl1a[x]) re <- extract(re1,zuobiao) ####zuobiao stand

我编写了一个从ncdf文件中提取值的函数,如下所示:

precresults <- function(x){
    library(magrittr)
    library(ncdf4)
    library(raster)
    library(ncdf.tools)
    ##library(ncf)
    re1 <- brick(nl1a[x])
    re <- extract(re1,zuobiao)
        ####zuobiao stands for the coordinate of the targeted sites
    ###extract(zuobiao)
    return(re)
}

###precresults(20)
precresults11 <- lapply(1:420, precresults)
Lappy函数用于提取多个站点的值

但是,出现以下错误:

UseMethodextract中出错:没有适用于的方法 “提取”应用于c类“光栅砖”、“光栅”的对象, “RasterStackBrick”,“BasicRaster”

我们如何解决这样的错误?

我认为Roman是正确的,magrittr::extract是掩蔽光栅::extract。在提供的示例中,您不使用magrittr,但可以在其他地方使用它,因此请使用raster::extract而不是extract。您的函数可以重写为:

library(raster)
precresults <- function(x){
    re1 <- brick(nl1a[x])
    raster::extract(re1, zuobiao)
}
precresults11 <- lapply(1:420, precresults)
或者像这样:

library(raster)
x <- matrix(nrow=length(zuobiao), ncol=420)
for (i in 1:420) {
    re1 <- brick(nl1a[i])
    x[,i] <- raster::extract(re1, zuobiao)
}

只是黑暗中的一个镜头-有任何掩蔽吗?也许您可以尝试使用raster::extract。我猜现在正在使用magrittr::extract。非常感谢您的评论。根据你的评论,我终于解决了我的问题。非常感谢你的帮助。根据你的建议,我成功地解决了我的问题。