按R中的位置更改ID名称



我的数据帧中有两个重复的ID,我想更改其中一个的名称。

当我使用dplyr的重估函数时,新名称会分配给这两个函数。

这就是为什么我想通过按列和行指定ID的位置,然后更改它来实现这一点,但我找不到如何实现

简而言之,我的问题是,如果在一个数据帧中重复两次,我如何只更改一个ID(元素(的名称

编辑:更具体地说,我的数据是这个-

Value <- c(12,23,4,5)
ID <- c("A", "B", "A", "C")
Score1 <- c(3, 2, 1, 4)
Score2 <- c(4,5,9,10)
mydf <- data.frame(Value, ID, Score1, Score2)
mydf
# Value ID Score1 Score2
1    12  A      3      4
2    23  B      2      5
3     4  A      1      9
4     5  C      4     10

我想把第二个";A";至";A-1";。

(这可能是一个非常基本的问题,我是R的新手,对不起:D(

假设您希望后续的A(如果有多个重复(按顺序编号,那么make.unique在这里工作得很好:

make.unique(mydf$ID)
# [1] "A"   "B"   "A.1" "C"  

如果你必须用破折号而不是句号,那么

sub(".", "-", make.unique(mydf$ID), fixed = TRUE)
# [1] "A"   "B"   "A-1" "C"  

无论哪种方式,都可以很容易地将其重新分配回mydf$ID

相关内容

最新更新