R 中 make.unique 中的括号

parenthesis in make.unique in R

在 R 中使用 make.unique 函数将通过附加 . 和来自 1 的索引生成唯一变量,例如:

make.unique(c("a1","a1","a1"))
[1] "a1"   "a1.1" "a1.2" 

我正在寻找一个在索引周围加上括号的函数,例如:

make.unique.NEW(c("a1","a1","a1"))
[1] "a1"   "a1(1)" "a1(2)" 

使用 sub 将数字括起来并删除圆点:

sub(r"{\.(\d+)$}", r"{()}", make.unique(c("a","a","a", "a1", "a1")))
## [1] "a"     "a(1)"  "a(2)"  "a1"    "a1(1)"

以上需要R 4.0.0或更高版本。如果你有 R 的早期版本,请使用它(它也适用于 R 4.0.0 及更高版本,但涉及双反斜杠)。

sub("\.(\d+)$", "(\1)", make.unique(c("a","a","a", "a1", "a1")))