Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于另一个向量的值创建向量_R_Loops_Vector - Fatal编程技术网

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抱歉忘记列出包