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

时间:2018-08-15 14:35:12

标签: r dplyr duplicates

我有一个包含几列的表。我想在列中为字符串编号,以防万一。 ->要稍后再使用宽格式,这就是为什么我不能使用相同的字符串。

示例:

Name    drink   number
stefan  beer    3
stefan beer 4
stefan wine 4
michael soda 2

应该是

Name    drink   number
stefan  beer_1  3
stefan beer_2   4
stefan wine 4
michael soda 2

现在我只删除列,但仅在第二列中添加数字会很棒。

df[!duplicated(df[c(1,2)]),]

非常感谢您的帮助。我猜这可以通过replace以及dplyr包和mutate完成,但不确定代码的外观。

谢谢。  丹尼斯

1 个答案:

答案 0 :(得分:5)

一个选项是make.unique

library(dplyr)
df %>%
  group_by(Name) %>%
   mutate(drink = make.unique(drink, sep = "_"))