【发布时间】:2013-11-07 13:42:08
【问题描述】:
我有一个两列矩阵,m。我有一个布尔向量index,根据m[,1] 中的序列生成。我想用来自m[,1] 的值替换m[,2] 中的一些值,但只有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))
如果能以优雅的方式获得正确结果,我将不胜感激。
谢谢。
【问题讨论】: