首页 > 解决方案 > 根据重复 ID 创建唯一 ID

问题描述

我从一位同事那里收到了一些数据,他正在处理在几个样带中记录的动物观察结果。但是,我的同事使用相同的三个 ID 代码来识别每个样带:1、7、13 和 19。我想用唯一 ID 替换重复的 ID。这张图片显示了我想要做的事情:

在此处输入图像描述

下面是对应的代码:

example_data<-structure(list(ID_Transect = c(1L, 1L, 1L, 1L, 1L, 1L, 7L, 7L, 
                                             7L, 7L, 7L, 7L, 13L, 13L, 13L, 13L, 13L, 13L, 19L, 19L, 19L, 
                                             19L, 19L, 19L, 1L, 1L, 1L, 1L, 1L, 1L, 7L, 7L, 7L, 7L, 7L, 7L), 
                             transect_id = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 
                   2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 
                   5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L)), class = "data.frame", row.names = c(NA, 
                                                                                             -36L))

标签: rdataframetidyverse

解决方案


我们也可以做

library(data.table)
setDT(example_data)[, transect_id := rleid(ID_Transect)]

推荐阅读