make.unique
Make Character Strings UniqueMakes the elements of a character vector unique by appending sequence numbers to duplicates.
make.unique(names, sep = ".")
names | a character vector |
sep | a character string used to separate a duplicate name from its sequence number. |
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
.
A character vector of same length as names
with duplicates changed, in the current locale's encoding.
Thomas P. Minka
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)
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.