R 基于另一个向量的值创建向量
我得到了向量向量和期望的结果:R 基于另一个向量的值创建向量,r,loops,vector,R,Loops,Vector,我得到了向量向量和期望的结果: vec <- c(1,1,1,20,1,1,1,1,40,1,120,1,1) result <- c(1,1,1,1 ,2,2,2,2, 2,3,3 ,4,4) vec 10从三开始,以此类推 我试过: b <- 1 for (i in 1:length(vec)){ if(vec[i] < 10){ vec[i] <- 1 } else { b <- b+1 vec[i] <- b}
vec <- c(1,1,1,20,1,1,1,1,40,1,120,1,1)
result <- c(1,1,1,1 ,2,2,2,2, 2,3,3 ,4,4)
vec 10从三开始,以此类推
我试过:
b <- 1
for (i in 1:length(vec)){
if(vec[i] < 10){
vec[i] <- 1
} else {
b <- b+1
vec[i] <- b}}
b与cumsum一起使用滞后
s=dplyr::lag(vec>10)
s[is.na(s)]=FALSE
cumsum(s)+1
[1] 1 1 1 1 2 2 2 2 2 3 3 4 4
很好,但它需要改进:它给出:1 1 2 2 3 44@Adamek你想在我这边再检查一下吗?它显示了1 1 2 2 2 3 3 4它给出了我之前评论的结果。我知道,我必须使用dplyr的滞后。简单dplyr::lag:)@Adamek yep抱歉忘记列出包