この質問(Find second highest value on a raster stack in R)に続いて、2番目に高い値を持つレイヤの名前を各ラスタスタックxy座標でどのように見つけることができますか?ラスタスタックの2番目に高い値のレイヤ名を見つけるR
私は「which.max()」機能を備えた最高値を含む層の名前(レイヤ番号)を見つけることができるよ:しかし、どのように私は、ラスタを得ることができ
set.seed(123)
require(raster)
r1 <- raster(nrows = 10, ncols = 10)
r2 <- r3 <- r4 <- r1
r1[] <- runif(ncell(r1))
r2[] <- runif(ncell(r1)) + 0.2
r3[] <- runif(ncell(r1)) - 0.2
r4[] <- runif(ncell(r1))
rs <- stack(r1, r2, r3, r4)
which.max.na <- function(x, ...) ifelse(length(x) == sum(is.na(x)), 0, which.max(x))
m1 <- calc(rs, which.max.na)
plot(m1)
を2番目に高い値を含む名前(層番号)?
私は(How to find second highest value and corresponding layer name in a raster stack in R)で解決策を試してみました:ここ
m2 <- calc(rs, fun=function(x, na.rm) x[order(x, decreasing=T)[2]]) & calc(rs, fun=function(x, na.rm) order(x, decreasing=T)[2])
plot(m2)
しかしplot(m2)
が示すように、成功せず。..
これは完璧に動作します、ありがとう! – Marc