1
ラスタスタックがあり、レイヤの一部を別のスタックのレイヤに置き換える必要があります。R:ラスタスタック内の複数のレイヤを2番目のラスタスタックのレイヤに置き換えます。
解決方法はかなりシンプルで簡単ですが、これまで私はそれを見つけることができませんでした。ここで、あなたに再現可能な例を与えることを
は私がしようとしたものです:どのように上の任意のアイデアを
Error in v[] <- value : incompatible types (from S4 to logical) in subassignment type fix
In addition: Warning messages:
1: In if (i < 1) { : the condition has length > 1 and only the first element will be used
2: In if (i > nl + 1) { : the condition has length > 1 and only the first element will be used
3: In if (i > nl) { : the condition has length > 1 and only the first element will be used
:
library(raster)
# create some raster
r1 <- raster(nrows=10, ncols=10, xmn=0, xmx=10, ymn = 0, ymx = 10)
r1[] <- sample(1:100, 100, replace = TRUE)
r2 <- raster(nrows=10, ncols=10, xmn=0, xmx=10, ymn = 0, ymx = 10)
r2[] <- sample(1:100, 100, replace = TRUE)
r3 <- raster(nrows=10, ncols=10, xmn=0, xmx=10, ymn = 0, ymx = 10)
r3[] <- sample(1:100, 100, replace = TRUE)
r4<- raster(nrows=10, ncols=10, xmn=0, xmx=10, ymn = 0, ymx = 10)
r4[] <- sample(1:100, 100, replace = TRUE)
# put the raster into a stack
r_stack <- stack(r1, r2, r3, r4)
#calculate the mean of the raster
r_mean <- mean(r_stack)
# What I would like to do is to subtract the mean from some of the
# raster in the stack (layers_to_replace), but not from all, and to
# replace the raster in the stack with the new difference.
# For example I would like to replace the second and fourth layer with
# the difference.
l_replace <- c(2, 4)
# Note: I place the difference into a second stack for the sake
# of the example as my original data comes in a second stack
rep_stack <- r_stack[[l_replace]] - r_mean
r_stack[[l_replace]] <- rep_stack
残念ながら、このアプローチは動作し、次のエラーをスローしません。この問題を解決することは大歓迎以上のことです。
簡単で、作業溶液ので、答えとして受け入れました。 – Improbability