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
我现在有一个向量 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