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

如何用Tidyverse/Dplyr为跨天重复的参与者生成唯一ID

生成跨天参与者的唯一连续标识

你的需求其实很容易实现,用基础的算术运算就能搞定,正好匹配你目前掌握的列操作技能。

核心逻辑

因为每个测试日固定有36个参与者(ID从1到36),5天总共180个唯一的「日期+参与者」组合,所以可以用这个公式直接计算唯一标识:

unique_id = (Day - 1) * 36 + participant_ID
  • Day1的所有参与者,(1-1)*36=0,所以ID1-36会被映射成1-36
  • Day2的参与者,(2-1)*36=36,ID1-36对应37-72
  • 以此类推,Day5的最后一个参与者(ID36)会得到(5-1)*36+36=180,刚好覆盖1到180的连续范围

具体代码实现

R语言版本

假设你的数据框名为df,直接新增列即可:

df$unique_id <- (df$Day - 1) * 36 + df$participant_ID

Python Pandas版本

如果用Python处理,代码如下:

df['unique_id'] = (df['Day'] - 1) * 36 + df['participant_ID']

验证示例

拿你提供的Day1数据来说,第一行的Day=1、participant_ID=1,计算后unique_id=1;第36行的participant_ID=33,结果是33,完全符合预期。如果是Day2的participant1,结果就是37,完美衔接Day1的最后一个标识36。

这个方法完全依赖你已经掌握的列运算,不需要任何复杂的分组或映射函数,简单高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:02:56