R - 满足条件则继续循环,否则重复

R - meet the condition then continue loop, otherwise repeat

我现在有一个向量 x,我想创建另一个向量 y。它的作用是通过比较x的值和一个特定的值(如30),将x分成许多组。

这里是向量 x:

x <- c(1,2,5,34,21,6,0,56,77,21,3,0)

如果用循环和条件语句来描述这个问题,我认为是:

条件满足则继续循环,否则重复。

例如向量x中1、2、5小于30,所以“1”在y中重复了3次; 34大于30,所以继续循环到2的值,21小于30,所以“2”重复1次,以此类推。

y的最终值应该是这样的:

y <- c(1,1,1,2,2,2,2,3,4,4,4,4)

可能我的表达不是很清楚,因为我是非英语母语的人,现在有点迷茫,希望有人能帮助我。

我们可以在这里使用 cumsum 并在每次发现大于 30 的值时递增计数。

cumsum(x > 30) + 1
#[1] 1 1 1 2 2 2 2 3 4 4 4 4