이 질문 (Find second highest value on a raster stack in R)에 이어 두 번째로 높은 값을 가진 레이어의 이름을 각 래스터 스택 xy 좌표에서 어떻게 찾을 수 있습니까? 나는 래스터를 얻을 수있는 방법 그러나래스터 스택에서 두 번째로 큰 값의 레이어 이름 찾기 R
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)
: 나는 "which.max()"기능으로 가장 높은 값을 포함하는 레이어의 이름 (레이어 번호를) 찾을 수 있어요
두 번째로 높은 값을 포함하는 이름 (레이어 번호)?
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