如何标记值是否连续冻结超过或等于4次

时间:2017-08-17 07:05:19

标签: r

嗨,我的df如下所示 如果值列中的值重复> = 4 tome

,如何创建列“rep”

我们可以用下面的代码

创建RLE_created列
df$RLE_created<-sequence(rle(as.character(df[,grep("Value",colnames(df))]))$lengths)

Value        RLE_created     rep
1              1             
3              1              y
3              2              y
3              3              y
3              4              y
7              1               
8              1              
8              2             
9              1              y
9              2              y
9              3              y
9              4              y
9              5              y

提前致谢

1 个答案:

答案 0 :(得分:1)

一个选项是

library(data.table)
setDT(df)[, rep :=  c("", "Y")[(.N >= 4)+1], Value]

注意:最好不要使用对象名称的函数名称