我有以下示例data.frame
data.frame(V1=rep(1:5,times=5))
我想创建另一个变量,将我的观察结果分组,规则应该是每当V1
增加时,观察结果都属于同一组。
结果应该是:
data.frame(V1=rep(1:5,times=5),V2=rep(1:5,each=5))
到目前为止,我所考虑的唯一解决方案并不是真正有效,其他任何人都有关于如何在没有循环的情况下做到这一点的提示?
答案 0 :(得分:1)
我们可以使用ave
with(d1, ave(V1, V1, FUN= seq_along))
或者
with(d1, cumsum(c(TRUE,diff(V1)<0)))
正如@Laterow在评论中提到的那样,<0
可以替换为<1
,以便只对增加的值进行分组。