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

R语言基于Groupid与School双条件生成唯一分组ID的实现问题

原有代码问题说明

  1. 你混用了dplyr的group_by()和base R的transform(),transform()无法识别dplyr的分组结构,你设置的按School分组实际没有生效,生成的id是全局Groupid转因子的数值,才会出现不同School同Groupid的id重复问题。
  2. 你的需求是为每个(School, Groupid)的唯一组合分配全局递增的唯一id,不需要在School内部分组单独编号。

修正后代码

写法1(最简洁,用dplyr内置分组编号函数)

library(dplyr)
data1 <- data %>%
  # 直接为每个(School, Groupid)唯一组合按首次出现顺序生成全局id
  mutate(id = group_indices(., School, Groupid)) %>%
  relocate(id, .before = Groupid)

写法2(手动生成组合因子,兼容性更强)

library(dplyr)
data1 <- data %>%
  # 生成组合字段,按首次出现顺序设置因子水平后转数值
  mutate(id = as.numeric(factor(paste(School, Groupid, sep = "_"), levels = unique(paste(School, Groupid, sep = "_"))))) %>%
  relocate(id, .before = Groupid)

两种写法运行后输出都和你给出的期望结果完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:48:03