使用R中光栅包中的分位数函数计算光栅堆栈的第一个和第三个四边形

使用R中光栅包中的分位数函数计算光栅堆栈的第一个和第三个四边形,r,r-raster,R,R Raster,我使用以下代码在R中使用光栅包中的分位数函数进行四分位数计算。 我的光栅图像堆栈有307个图像,所有图像都有一些无数据值。 我只想要输出,不考虑任何数据值。我尝试了以下代码: library(raster) raster_data<-list.files(path= getwd() , pattern= "\\.tif$", all.files=FALSE, full.names=TRUE,recursive=TRUE) s <- stack

我使用以下代码在R中使用光栅包中的分位数函数进行四分位数计算。 我的光栅图像堆栈有307个图像,所有图像都有一些无数据值。 我只想要输出,不考虑任何数据值。我尝试了以下代码:

    library(raster)    
    raster_data<-list.files(path= getwd() , pattern= "\\.tif$", all.files=FALSE,
    full.names=TRUE,recursive=TRUE) 
    s <- stack(raster_data)
    quantile(s, na.rm = TRUE)

为什么NA值以输出形式出现,而不是以四分位数出现。

以下是一个有效的示例:

library(raster)
fn <- system.file("external/test.grd", package="raster")
s <- stack(fn, fn)
quantile(s)

#            0%      25%     50%      75%    100%
#test.1 128.434 293.2325 371.412 499.8195 1805.78
#test.2 128.434 293.2325 371.412 499.8195 1805.78
因此,您需要找出文件的不同之处

我能想到的唯一返回分位数为NA的方法是当所有值都为NA时:

quantile(rep(NA, 10), na.rm=TRUE)
# 0%  25%  50%  75% 100% 
# NA   NA   NA   NA   NA 

因此,文件中的所有值似乎都是
NA
。情况可能并非如此,但如果没有其中一个文件,则很难排除故障。

如果不知道数据是什么或数据的外观,很难说。。。请添加更多信息,如有可能,请添加
t(apply(values(s), 2, quantile, na.rm=TRUE))
quantile(rep(NA, 10), na.rm=TRUE)
# 0%  25%  50%  75% 100% 
# NA   NA   NA   NA   NA