r - 为重复的行分配唯一的值

标签 r

我想通过R中的ID为每个重复的行分配值

df <- data.frame(ID=c(1,1,1,2,2,2,2,2,3,3,4),
            Code = c("A","A","A","B","B","C","C","D","A","A","C"))
> df
   ID Code
1   1    A
2   1    A
3   1    A
4   2    B
5   2    B
6   2    C
7   2    C
8   2    D
9   3    A
10  3    A
11  4    C

我想要这样的输出,检查ID是否重复,然后分配第二个重复的_1,依此类推...
   ID Code Code_n
1   1    A      A
2   1    A    A_1
3   1    A    A_2
4   2    B      B
5   2    B    B_1
6   2    C      C
7   2    C    C_1
8   2    D      D
9   3    A      A
10  3    A    A_1
11  4    C      C

最佳答案

您可以按以下方式从基数R使用make.unique

with(df, ave(as.character(Code), ID, FUN = make.unique))
#[1] "A"   "A.1" "A.2" "B"   "B.1" "C"   "C.1" "D"   "A"   "A.1" "C"

关于r - 为重复的行分配唯一的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42237443/

相关文章:

r - 为 gbm 交互强度实现零分布

r - 通过 ID 获取 data.frame 行

r - 使用 for 循环对多个公司和多个日期进行事件研究

r - 现在 invoke() 已被软弃用,还有什么替代方案?

r - 在 R 中使用 dplyr 将 csv 导入 SQLite 数据库时,是否需要担心 SQL 注入(inject)?

r - 找到获得向量中相同元素之间所有间隔的最快方法

r - 使用管道时如何在R中获取函数输入名称

r - 将列表合并并熔化到数据框

r - 将相同顺序的矩阵列表转换为数组

r - testthat 模式用于长时间运行的测试