如果两列相同,则重命名字符串

Den*_*nis 1 r duplicates dplyr

我有一个包含多个列的表.我想在列中编号一个字符串,以防它相同. - >以后要去宽格式这就是为什么我不能有相同的字符串.

例:

Name    drink   number
stefan  beer    3
stefan beer 4
stefan wine 4
michael soda 2
Run Code Online (Sandbox Code Playgroud)

应该

Name    drink   number
stefan  beer_1  3
stefan beer_2   4
stefan wine 4
michael soda 2
Run Code Online (Sandbox Code Playgroud)

现在我只删除列,但只是为第二列添加一个数字会很棒.

df[!duplicated(df[c(1,2)]),]
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助.我想这可以通过替换以及dplyr包和mutate来完成,但不确定代码的外观.

谢谢.丹尼斯

akr*_*run 5

一种选择是 make.unique

library(dplyr)
df %>%
  group_by(Name) %>%
   mutate(drink = make.unique(drink, sep = "_"))
Run Code Online (Sandbox Code Playgroud)