# How to convert the repeated elements of strings in a vector to unique elements in R?

When we have repeated elements of strings and we want to use them as factor levels then it is okay but if we want to treat them individually then it is better to make each value a unique element. To do this, we can use make.unique function. For example, if we have a vector x that contains repeated string values then to make them unique, we can use make.unique(x).

## Example

Live Demo

x1<-sample(letters[1:4],10,replace=TRUE) x1

## output

[1] "a" "c" "b" "a" "d" "d" "b" "b" "c" "c"

## Example

make.unique(x1)

## output

[1] "a" "b" "c" "c.1" "a.1" "b.1" "a.2" "b.2" "d" "a.3"


## Example

Live Demo

x2<-sample(letters[1:4],120,replace=TRUE) x2

## output

[1] "d" "a" "a" "b" "a" "c" "b" "c" "b" "a" "d" "d" "b" "d" "a" "c" "a" "d"
[19] "c" "c" "c" "a" "a" "d" "c" "a" "d" "c" "c" "d" "c" "a" "d" "c" "c" "b"
[37] "a" "c" "c" "d" "d" "a" "a" "d" "d" "d" "c" "b" "d" "b" "c" "d" "a" "c"
[55] "a" "c" "d" "b" "a" "d" "d" "a" "b" "d" "b" "d" "a" "b" "b" "c" "b" "a"
[73] "d" "b" "d" "b" "c" "b" "d" "a" "c" "c" "c" "c" "b" "b" "c" "a" "d" "d"
[91] "b" "c" "b" "d" "a" "a" "d" "a" "b" "c" "c" "a" "a" "a" "c" "a" "d" "d"
[109] "d" "c" "a" "d" "d" "b" "a" "a" "a" "c" "a" "b"

## Example

make.unique(x2)

## output

[1] "d" "c" "b" "c.1" "a" "d.1" "a.1" "c.2" "d.2" "c.3"
[11] "a.2" "d.3" "c.4" "a.3" "d.4" "c.5" "c.6" "c.7" "a.4" "a.5"
[21] "b.1" "c.8" "d.5" "a.6" "c.9" "b.2" "b.3" "c.10" "a.7" "a.8"
[31] "a.9" "d.6" "a.10" "d.7" "c.11" "b.4" "b.5" "b.6" "c.12" "d.8"
[41] "d.9" "b.7" "c.13" "a.11" "a.12" "d.10" "b.8" "a.13" "c.14" "a.14"
[51] "a.15" "c.15" "d.11" "d.12" "d.13" "b.9" "d.14" "d.15" "c.16" "a.16"
[61] "b.10" "d.16" "a.17" "a.18" "d.17" "b.11" "c.17" "b.12" "b.13" "c.18"
[71] "c.19" "b.14" "c.20" "a.19" "a.20" "d.18" "a.21" "a.22" "a.23" "d.19"
[81] "d.20" "c.21" "b.15" "b.16" "d.21" "b.17" "c.22" "a.24" "a.25" "b.18"
[91] "a.26" "c.23" "d.22" "d.23" "d.24" "c.24" "b.19" "a.27" "b.20" "a.28"
[101] "d.25" "a.29" "b.21" "a.30" "c.25" "b.22" "a.31" "d.26" "d.27" "d.28"
[111] "c.26" "b.23" "d.29" "b.24" "c.27" "b.25" "d.30" "a.32" "b.26" "d.31"

## Example

Live Demo

x3<-sample(LETTERS[1:10],100,replace=TRUE) x3

## output

[1] "B" "H" "H" "E" "F" "E" "A" "I" "J" "D" "C" "A" "B" "A" "C" "J" "D" "C"
[19] "J" "G" "A" "D" "D" "F" "F" "G" "B" "F" "F" "D" "B" "I" "C" "F" "G" "F"
[37] "D" "J" "H" "C" "B" "G" "G" "E" "G" "B" "F" "A" "F" "I" "A" "J" "I" "E"
[55] "A" "H" "H" "A" "C" "J" "I" "B" "D" "I" "A" "E" "G" "E" "E" "J" "J" "G"
[73] "I" "J" "D" "I" "J" "E" "E" "G" "D" "J" "G" "E" "A" "B" "H" "B" "C" "C"
[91] "A" "J" "G" "I" "H" "J" "E" "E" "G" "C"

## Example

make.unique(x3)

## output

[1] "F" "J" "C" "I" "D" "J.1" "J.2" "J.3" "I.1" "F.1"
[11] "C.1" "F.2" "I.2" "I.3" "J.4" "B" "D.1" "F.3" "H" "F.4"
[21] "B.1" "D.2" "J.5" "D.3" "B.2" "A" "B.3" "F.5" "D.4" "A.1"
[31] "D.5" "J.6" "H.1" "J.7" "B.4" "I.4" "F.6" "F.7" "A.2" "I.5"
[41] "B.5" "C.2" "J.8" "C.3" "C.4" "A.3" "D.6" "B.6" "E" "C.5"
[51] "G" "J.9" "A.4" "H.2" "I.6" "J.10" "J.11" "C.6" "H.3" "G.1"
[61] "B.7" "C.7" "A.5" "F.8" "I.7" "H.4" "J.12" "E.1" "E.2" "E.3"
[71] "A.6" "J.13" "B.8" "A.7" "H.5" "F.9" "B.9" "B.10" "J.14" "F.10"
[81] "D.7" "E.4" "A.8" "F.11" "I.8" "G.2" "B.11" "J.15" "E.5" "J.16"
[91] "E.6" "H.6" "F.12" "C.8" "B.12" "E.7" "G.3" "E.8" "G.4" "A.9"

## Example

Live Demo

x4<-sample(c("USA","CHINA","INDIA","CANADA","RUSSIA"),50,replace=TRUE)
x4

## output

[1] "INDIA" "CHINA" "INDIA" "CANADA" "INDIA" "CANADA" "INDIA" "CANADA"
[33] "USA" "USA" "RUSSIA" "USA" "CANADA" "CHINA" "USA" "RUSSIA"
[41] "CHINA" "RUSSIA" "RUSSIA" "USA" "CHINA" "USA" "USA" "RUSSIA"
[49] "CHINA" "CANADA"

## Example

Live Demo

x5<-sample(c("tutor","e-learning","programming","tech"),60,replace=TRUE)
x5

## output

[1] "tutor" "tutor" "programming" "tutor" "tech"
[6] "tutor" "tech" "tech" "tutor" "tech"
[11] "tutor" "tutor" "e-learning" "e-learning" "tech"
[16] "e-learning" "tutor" "e-learning" "tutor" "tech"
[21] "tutor" "programming" "e-learning" "tech" "tutor"
[26] "e-learning" "tutor" "e-learning" "tutor" "e-learning"
[31] "tech" "programming" "programming" "tutor" "programming"
[36] "tech" "tech" "programming" "programming" "programming"
[41] "e-learning" "e-learning" "e-learning" "e-learning" "tech"
[46] "tech" "programming" "tutor" "e-learning" "e-learning"
[51] "programming" "e-learning" "tutor" "e-learning" "tutor"
[56] "e-learning" "programming" "e-learning" "tutor" "programming"

## Example

make.unique(x5)

## output

[1] "programming" "tech" "programming.1" "tutor"
[5] "e-learning" "programming.2" "e-learning.1" "programming.3"
[9] "tutor.1" "tech.1" "tech.2" "programming.4"
[13] "tech.3" "programming.5" "e-learning.2" "tutor.2"
[17] "programming.6" "programming.7" "e-learning.3" "tech.4"
[21] "tutor.3" "tech.5" "programming.8" "e-learning.4"
[25] "e-learning.5" "tech.6" "programming.9" "programming.10"
[29] "programming.11" "tech.7" "programming.12" "tech.8"
[33] "e-learning.6" "tutor.4" "programming.13" "e-learning.7"
[37] "e-learning.8" "tutor.5" "e-learning.9" "tutor.6"
[41] "tutor.7" "e-learning.10" "tech.9" "e-learning.11"
[45] "tutor.8" "e-learning.12" "programming.14" "e-learning.13"
[49] "e-learning.14" "programming.15" "tutor.9" "e-learning.15"
[53] "programming.16" "programming.17" "tutor.10" "tutor.11"
[57] "tech.10" "tech.11" "programming.18" "programming.19"

Updated on: 14-Oct-2020

86 Views