r - 如果两列相同,则重命名字符串
问题描述
我有一张有几列的桌子。我想在一列中对一个字符串进行编号,以防万一。--> 以后想改成宽格式,这就是为什么我不能有相同的字符串。
例子:
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 包和变异来完成,但不确定代码的外观。
谢谢。丹尼斯
解决方案
一种选择是make.unique
library(dplyr)
df %>%
group_by(Name) %>%
mutate(drink = make.unique(drink, sep = "_"))
推荐阅读
- debian - Cmake/Cpack Debian 打包 - 生成正确的包名
- visual-c++ - 如果循环不工作。运行时显示重复的 cout。
- r - 使用 pheatmap 在组内聚类
- clojure - Clojure 在验证中使用来自另一个必需键的值
- opengl - Why can I use GL_QUADS with glDrawArrays?
- windows - Windows 8/10 API Detect suspended process
- javascript - javascript 从数组创建嵌套的 JSON 数组
- dart - 如何在 BottomNavigationBarItem 中绝对定位徽章
- html - 对齐框内的图像、文本和标题
- python - 从匿名生成器构造列表的 Pythonic 习语