3

R のラスターで移動する多数決値を計算しようとしています。ラスター パッケージの焦点関数は、平均値、最小値、最大値を提供するだけです。3 つの値 (1、2、3) を持つラスターがあり、中心に設定された 3x3 ウィンドウで最も豊富な値を持ちたいと考えています。

Rで最も効率的にそれを行うにはどうすればよいですか? ありがとうございました!

library(raster)

# create data
r <- raster(nrows = 120, ncol = 120, xmn=0)
r[] <- sample(3, ncell(r), replace=TRUE)
4

2 に答える 2

4

あなたができること:

f <- function(x){
 tab <- table(x)
 # I am using the first value here, maybe you want to use the mean, 
 # if 2 or more values occur equally often.
 names(tab)[which.max(tab)][1]
}

r <- raster(nrows = 120, ncol = 120, xmn=0)
r[] <- sample(3, ncell(r), replace=TRUE)

r <- focal(r, w=3, f)
于 2012-06-19T14:34:46.243 に答える