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

如何在R中使用dplyr为数据框按产品分组添加递增序号列

基于dplyr的实现方法

你已经提前完成数据按product分组、按date排序的前提下,直接调用row_number()生成分组内序号即可,代码如下:

# 加载dplyr包
library(dplyr)

# 替换df为你的实际数据框名称
df_result <- df %>%
  group_by(product) %>%
  mutate(serial_column = row_number()) %>%
  ungroup() # 无后续分组操作时建议取消分组,避免影响其他计算

完整流程(含前置校验步骤)

如果还未确认日期格式、排序逻辑的正确性,建议跑完整流程避免序号出错:

df_result <- df %>%
  # 1. 转换date列为标准日期格式,避免字符串排序逻辑异常
  mutate(date = as.Date(date, format = "%d/%m/%Y")) %>%
  # 2. 按产品分组,组内按日期升序排序
  group_by(product) %>%
  arrange(date, .by_group = TRUE) %>%
  # 3. 生成分组内递增序号
  mutate(serial_column = row_number()) %>%
  ungroup()

逻辑说明

  • group_by(product) 会将数据按产品字段拆分为独立分组,后续的序号生成逻辑会在每个分组内独立执行
  • row_number() 会按照分组内的当前行顺序生成从1开始的连续正整数,完全匹配你要求的「每个产品分组内按日期顺序从1递增编号」的需求
  • 最终生成的serial_column结果和你给出的示例表完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:54:02