R 如何基于布尔向量填充矩阵列?
我有一个两列矩阵,R 如何基于布尔向量填充矩阵列?,r,vector,indexing,boolean,R,Vector,Indexing,Boolean,我有一个两列矩阵,m。我有一个布尔向量索引,它是根据m[,1]中的序列生成的。我想将m[,2]中的一些值替换为m[,1]中的值,但仅当索引中的同一行为真时 我相信有一个很好的方法可以做到这一点,而不是循环,但我不能让我的头周围的时刻。我试过很多方法,但都失败了。这是我的密码: 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, -
m
。我有一个布尔向量索引
,它是根据m[,1]
中的序列生成的。我想将m[,2]
中的一些值替换为m[,1]
中的值,但仅当索引中的同一行为真时
我相信有一个很好的方法可以做到这一点,而不是循环,但我不能让我的头周围的时刻。我试过很多方法,但都失败了。这是我的密码:
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))
m这应该可以:
m[which(index),2] <- m[which(index),1]
请注意,如果索引中没有NA
值,那么m[index,2]
等也会起作用,这应该起作用:
m[which(index),2] <- m[which(index),1]
请注意,如果index
中没有NA
值,那么m[index,2]
等也会起作用