R在值列中的每次更改均增加1,然后重新启动计数器

Slubee

我想找到一种与这个问题非常相似的方法。列中的每个更改加1

但是我想在使用var1 = c时重新启动计数器df$var2 <- with(rle(as.character(df$var1)), rep(seq_along(values), lengths))*

结果列var 2

var1 var2 Should be
   a    1   1
   a    1   1
   1    2   2
   0    3   3
   b    4   4
   b    4   4
   b    4   4
   c    5   1
   1    6   2
   1    6   2
罗纳克·沙

在中,data.table您可以用于rleid获取var1每个组中的运行长度ID

library(data.table)

setDT(df)
df[, var2 := rleid(var1), by = cumsum(var1 == "c")]
df

#    var1 var2
# 1:    a    1
# 2:    a    1
# 3:    1    2
# 4:    0    3
# 5:    b    4
# 6:    b    4
# 7:    b    4
# 8:    c    1
# 9:    1    2
#10:    1    2

和使用 dplyr

library(dplyr)

df %>%
  group_by(group = cumsum(var1 == "c")) %>%
  mutate(var2 = cumsum(var1 != lag(var1, default = first(var1))) + 1)

数据

df <- structure(list(var1 = structure(c(3L, 3L, 2L, 1L, 4L, 4L, 4L, 
5L, 2L, 2L), .Label = c("0", "1", "a", "b", "c"), class = "factor")), 
class = "data.frame", row.names = c(NA, -10L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重新启动按钮计数器

单击按钮时增加计数器值,然后重新使用值

在更改日期时重新启动的每个表行的计数器

R中逻辑列中的TRUE值时增加计数器

重新启动的组计数器(带有R data.table)

创建在面板数据组中的条件下重新启动的顺序计数器

Python-根据另一列的更改创建一个计数器列,然后再次启动计数器

如何增加onClick事件中的计数器值?

如果前一列中的值不同,则创建一个增加的计数器,但在其他列值更改时重置?

k8s Pod重新启动时如何对Prometheus计数器求和

ROW_NUMBER over PARTITION BY 在休息之间重新启动行计数器

重新启动游戏和用户输入无效时,Round# 计数器不会重置

如何添加将两个计数器都重新启动为0的按钮?

列更改计数器

为什么每次更改都需要在Node.Js中重新启动服务器?

如何在Python3的循环中使用每次重新启动都会更改其值的variabe来增加列表?

页面上的多个计数器重新启动它

打开锁 - LeetCode,为什么计数器在每次递归调用中不断增加?

熊猫:每次符合条件时计数器都会增加

计数器在CSS中不增加

检查并增加Redis中的计数器

在Razor中增加索引计数器

在Angular中更改计数器变量的值

当计数器变量大于数组长度时,将计数器变量从零重新启动的功能-不起作用

每次进行更改时都必须重新启动Web服务器吗?

每次更改控制器时,我是否都必须重新启动/吊起Sails?

每次更改 PHP 脚本时都必须重新启动 apache 服务器吗?

Grails 项目需要在控制器每次更改后重新启动

如何使用重新启动管理器在Inno Setup卸载中关闭然后重新启动explorer.exe?