我需要在我的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
. . . . . .
. . . . . .
. . . . . .
答案 0 :(得分:1)
您可以使用is.na()
查找缺失值。以下内容将为您x
提供s
,但删除了所有缺失值的行:
x <- s[rowSums(!is.na(s[]))>0]