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

如何在R语言dplyr中实现分组内生成连续编号

错误原因

  • 代码问题出在group_by()的分组参数设置,你同时按cat和date两个字段分组,测试数据中每个cat + date的组合仅对应1行数据,row_number()返回的是当前分组内的行序号,每个仅1行的分组只会返回1,因此无法生成同cat分类下的连续序号。

修正方案

仅保留cat作为唯一分组字段即可,修改后代码如下:

library(dplyr)

df <- tibble(
  cat = c("A", "B", "C", "A", "A", "B"),
  date = seq.Date(Sys.Date(), Sys.Date() + 5,
                  by = 1),
  age = c(12, 13, 34,23,32,34)
)


df <- df %>%
  arrange(cat, date) %>%
  group_by(cat) %>% # 仅按cat字段分组
  mutate(var1 = row_number())
df 

结果验证

运行上述代码后,cat为A的3行数据var1列会依次生成1、2、3的连续序号,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:24:03