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

R ProgrammingServer Side ProgrammingProgramming

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"
[9] "INDIA" "CANADA" "CANADA" "CHINA" "CANADA" "CANADA" "INDIA" "CANADA"
[17] "CHINA" "INDIA" "CANADA" "RUSSIA" "INDIA" "CANADA" "CANADA" "CHINA"
[25] "CANADA" "CHINA" "RUSSIA" "RUSSIA" "INDIA" "CHINA" "CANADA" "USA"
[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"
raja
Published on 14-Oct-2020 11:19:35
Advertisements