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