首页 > 解决方案 > 如果两列相同,则重命名字符串

问题描述

我有一张有几列的桌子。我想在一列中对一个字符串进行编号,以防万一。--> 以后想改成宽格式,这就是为什么我不能有相同的字符串。

例子:

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)]),]

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

谢谢。丹尼斯

标签: rdplyrduplicates

解决方案


一种选择是make.unique

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

推荐阅读