1

我需要在我的 rasterstack 中搜索非 NA 像素,绘制它并移动到下一行。
例如,为了在光栅堆栈中绘制一个像素,我使用了 plot(c(s[2]))。我如何告诉 R 搜索、跳过 s[9] 和 s[10] 但绘制 s[11] 和所有非 NA 像素(我的栅格堆栈很大,我无法手动滚动数据)。

library(raster)
r <- raster(nrow=5, ncol=5)
s <- stack( sapply(1:5, function(i) setValues(r, rnorm(ncell(r), i, 3) )) )
s[1]<-NA
s[17]<-NA
s[9]<-NA
s[10]<-NA
s[]
         layer.1     layer.2     layer.3     layer.4    layer.5
 [1,]         NA          NA          NA          NA         NA
 [2,]  0.1584371  0.99468573  0.94710974  3.18498637  4.6798302
 [3,]  0.8929682  7.49865787  1.51287198 -0.09171288  3.6062321
 [4,]  2.3366843  3.69032485  5.28279348  4.53542568  2.9471826
 [5,] -1.2033025  4.81875840  2.74792519  0.12603305  2.6275978
 [6,]  3.5320934  3.97142657  0.68669177  0.59064613  3.9831087
 [7,]  2.7584724  0.12090944  1.18731282 11.14713659  1.1977102
 [8,] -0.2521980  6.46904343 -0.05345083  5.75236593  0.8176822
 [9,]         NA          NA          NA          NA         NA
[10,]         NA          NA          NA          NA         NA
[11,]  0.9084315  2.68050495  2.39652128  8.88959716  3.8591016
[12,] -1.8077862 -0.53302998  4.12304021  7.07710363 10.0508884
 .          .          .           .          .           .
 .          .          .           .          .           .
 .          .          .           .          .           .
4

1 回答 1

1

您可以使用is.na()来查找缺失值。以下将为您提供xs但删除了所有缺失值的任何行:

x <- s[rowSums(!is.na(s[]))>0]
于 2013-11-12T13:24:55.117 回答