You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dplyr与lag()在mutate()中实现分组Tstart连续计数

解决方案

直接使用row_number()函数即可生成连续递增的Tstart字段,无需依赖lag(),该函数会按数据行的顺序自动生成从1开始的连续整数,完美适配你重复行后的数据集。

全局连续计数(整个数据集从1开始递增)

library(dplyr)

test2 <- test2 %>%
  mutate(Tstart = row_number())

分组内连续计数(每个nrow分组从1开始单独计数)

如果需要每个分组内部独立计数,结合group_by()使用:

test2 <- test2 %>%
  group_by(nrow) %>%
  mutate(Tstart = row_number()) %>%
  ungroup()

原lag()方法失效的原因

你之前的方法出错,大概率是因为重复行复制了原组最后一行的Tstart值,而lag()依赖前一行的已有值计算,若初始逻辑未考虑重复行的新增位置,就会出现计数断层或重复。row_number()则直接基于行的位置生成计数,完全规避了这类问题。

内容的提问来源于stack exchange,提问作者PStaus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:57:24