我想修改一个数组,但具有逐个元素的条件。这就是我想要做的
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 <- runif(18, 0,1)
xx <- array(vector, dim=c(2,3,3))
xx
xx[,,1][xx[,,1]<.5] <- 1
xx[,,2][xx[,,2]<.4] <- 1.5
xx[,,3][xx[,,3]<.2] <- 2
关于r - 有条件地替换数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50273763/