如何搜索非NA行,绘图并移动到下一行?

时间:2013-11-11 23:49:47

标签: r plot r-raster

我需要在我的rasterstack中搜索非NA像素,绘制它并移动到下一行 例如,为了在rasterstack中绘制一个像素,我使用了绘图(c(s [2]))。我如何告诉R搜索,跳过s [9]和s [10]但是绘制s [11]和所有非NA像素(我的rasterstack是巨大的,我不能手动滚动数据)。

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
 .          .          .           .          .           .
 .          .          .           .          .           .
 .          .          .           .          .           .

1 个答案:

答案 0 :(得分:1)

您可以使用is.na()查找缺失值。以下内容将为您x提供s,但删除了所有缺失值的行:

x <- s[rowSums(!is.na(s[]))>0]