You need to enable JavaScript to run this app. R语言如何根据Deploy trap标记生成连续编号的新站点ID列
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何根据Deploy trap标记生成连续编号的新站点ID列

解决方案

你需要的功能可以通过cumsum累加函数快速实现,25万条数据计算无性能压力,完全匹配你要求的「遇到Deploy trap分配新ID、后续记录沿用、ID为1到n连续序列」的规则。

基础R实现(无需额外加载包)

生成纯数字连续ID

TRIALDATA$NEW_SITE_ID <- cumsum(TRIALDATA$Task_Type == "Deploy trap")

生成带原Site_ID后缀的ID

如果需要保留原站点ID信息,可拼接输出:

TRIALDATA$NEW_SITE_ID <- paste0(TRIALDATA$Site_ID, "_", cumsum(TRIALDATA$Task_Type == "Deploy trap"))

dplyr实现(习惯tidyverse语法可选)

library(dplyr)
TRIALDATA <- TRIALDATA %>%
  mutate(NEW_SITE_ID = cumsum(Task_Type == "Deploy trap"))

实现逻辑说明

Task_Type == "Deploy trap"会返回逻辑向量,其中TRUE对应数值1、FALSE对应数值0,cumsum对该向量逐行累加时,每次遇到Deploy trap就会自动加1,非部署行直接沿用当前累加值,完全符合你的规则要求。

你此前代码的问题在于仅给Deploy trap行单独加了后缀,其余行直接返回原Site_ID,既没有生成连续整数序列,也没有将同批次的巡检/移除记录关联到对应部署ID。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 15:27:00