make.unique {base} | R Documentation |
Make Character Strings Unique
Description
Makes the elements of a character vector unique by appending sequence numbers to duplicates.
Usage
make.unique(names, sep = ".")
Arguments
names |
a character vector. |
sep |
a character string used to separate a duplicate name from its sequence number. |
Details
The algorithm used by make.unique
has the property that
make.unique(c(A, B)) == make.unique(c(make.unique(A), B))
.
In other words, you can append one string at a time to a vector,
making it unique each time, and get the same result as applying
make.unique
to all of the strings at once.
If character vector A
is already unique, then
make.unique(c(A, B))
preserves A
.
Value
A character vector of same length as names
with duplicates
changed, in the current locale's encoding.
Author(s)
Thomas P. Minka
See Also
Examples
make.unique(c("a", "a", "a"))
make.unique(c(make.unique(c("a", "a")), "a"))
make.unique(c("a", "a", "a.2", "a"))
make.unique(c(make.unique(c("a", "a")), "a.2", "a"))
## Now show a bit where this is used :
trace(make.unique)
## Applied in data.frame() constructions:
(d1 <- data.frame(x = 1, x = 2, x = 3)) # direct
d2 <- data.frame(data.frame(x = 1, x = 2), x = 3) # pairwise
stopifnot(identical(d1, d2),
colnames(d1) == c("x", "x.1", "x.2"))
untrace(make.unique)
[Package base version 4.4.1 Index]