15

NA以下の例のラスター オブジェクト ( ) のを置き換える必要がありrます。

library(raster)
filename <- system.file("external/test.grd", package="raster")
r <- raster(filename)

これらも削除しようとしましたが(結果を a に配置しましたdata.frame)、役に立ちませんでした。

dfr <- as.data.frame(r, na.rm=T)
summary(dfr)
# test       
# Min.   : 128.4  
# 1st Qu.: 293.2  
# Median : 371.4  
# Mean   : 423.2  
# 3rd Qu.: 499.8  
# Max.   :1805.8  
# NA's   :6097
4

2 に答える 2

29

よりメモリセーフなアプローチ (大きなファイルの場合) は、再分類を使用することです。

library(raster)
filename <- system.file("external/test.grd", package="raster")
r <- raster(filename)
rna <- reclassify(r, cbind(NA, 250))

そして、これを行うことができる3つの方法がありますterra

library(terra)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
x <- classify(r, cbind(NA, -99))
y <- subst(r, NA, -99)
z <- ifel(is.na(r), -99, r)
于 2013-02-16T07:20:14.470 に答える
17

NAオブジェクトから値を削除することが理にかなっているのかわかりませんrasterが、簡単に置き換えることができます。

例えば:

oldpar <- par(mfrow=c(1, 2))
plot(r)
r[is.na(r)] <- 250
plot(r)
par(oldpar)

ここに画像の説明を入力してください


本当に必要な場合は、ラスター値をベクトルに抽出してから、NA値を削除できます。(ただし、空間情報が失われるため、これがどのように役立つかわかりません。)

r <- raster(filename)

r <- values(r)
head(r)
[1] NA NA NA NA NA NA

head(na.omit(r))
[1] 633.686 712.545 654.162 604.442 857.256 755.506
于 2012-08-15T09:31:18.910 に答える