我有一个两列矩阵,m
. 我有一个 Booleans 向量index
,根据m[,1]
. 我想将 , 中的一些值替换m[,2]
为来自m[,1]
但仅在同一行所在位置的index
值TRUE
。
我确信有一种不用循环的好方法可以做到这一点,但目前我无法理解它。我尝试了很多方法,但都失败了。这是我的代码:
m <- matrix(nrow=20,ncol=2)
m[,2] <- 0
m[,1] <- c(0, 0, 0, 1, 1, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1)
index <- (m[,1]==Lag(m[,1])) & (m[,1]!=Lag(m[,1],2))
我将不胜感激任何有关获得正确结果的优雅方式的见解。
谢谢你。