R 数组中值的条件替换

R 数组中值的条件替换,r,R,我想修改一个数组,但需要一个元素一个元素的条件。这就是我想做的 vector <- runif(18, 0,1) xx <- array(vector, dim=c(2,3,3)) for (i in 1:2) { for (j in 1:3) { xx[i,j,1] <- ifelse(xx[i,j,1]<0.5,1,xx[i,j,1]) xx[i,j,2] <- ifelse(xx[i,j,2]<0.4,1.5,xx

我想修改一个数组,但需要一个元素一个元素的条件。这就是我想做的

vector <- runif(18, 0,1)
xx <- array(vector, dim=c(2,3,3))
for (i in 1:2) {
    for (j in 1:3) {
        xx[i,j,1] <- ifelse(xx[i,j,1]<0.5,1,xx[i,j,1])
        xx[i,j,2] <- ifelse(xx[i,j,2]<0.4,1.5,xx[i,j,2])
        xx[i,j,3] <- ifelse(xx[i,j,3]<0.2,2,xx[i,j,3])
    }
}

vector不确定高效是什么意思,但这样可以避免循环:


vector有两种方法可以简化这个双循环

备选案文1:

vector <- runif(18, 0,1)
xx <- array(vector, dim=c(2,3,3))

xx[,,1][xx[,,1]<.5] = 1
xx[,,2][xx[,,2]<.4] = 1.5
xx[,,3][xx[,,3]<.2] = 2
向量
idx = 1:3
thr = c(.5, .4, .2)
sb = c(1, 1.5, 2)

lapply(idx, function(k){
  xx[,,k][ xx[,,k]< thr[x] ] <<- sb[k]
  })