How to concatenate string vectors separated with hyphen in R?

R ProgrammingServer Side ProgrammingProgramming

The concatenation of string vectors will create combination of the values in the vectors thus, we can use them for interaction between/among the vectors. In R, we can use expand.grid along with apply to create such type of combinations as shown in the below examples.

Example 1

 Live Demo

x1<-c("India","Russia","China")
y1<-c("UK","USA","Canada")
apply(expand.grid(x1,y1),1,paste,collapse="-")

Output

[1] "India-UK" "Russia-UK" "China-UK" "India-USA"
[5] "Russia-USA" "China-USA" "India-Canada" "Russia-Canada"
[9] "China-Canada"

Example 2

 Live Demo

x2<-c("Hot","Cold")
y2<-c("Summer","Winter","Spring")
apply(expand.grid(x2,y2),1,paste,collapse="-")

Output

[1] "Hot-Summer" "Cold-Summer" "Hot-Winter" "Cold-Winter" "Hot-Spring"
[6] "Cold-Spring"

Example 3

x3<-c("G1","G2","G3","G4","G5")
y3<-c("S1","S2","S3","S4")
z3<-c("P1","P2","P3","P4","P5")
apply(expand.grid(x3,y3,z3),1,paste,collapse="-")

Output

[1]  "G1-S1-P1" "G2-S1-P1" "G3-S1-P1" "G4-S1-P1" "G5-S1-P1" "G1-S2-P1"
[7]  "G2-S2-P1" "G3-S2-P1" "G4-S2-P1" "G5-S2-P1" "G1-S3-P1" "G2-S3-P1"
[13] "G3-S3-P1" "G4-S3-P1" "G5-S3-P1" "G1-S4-P1" "G2-S4-P1" "G3-S4-P1"
[19] "G4-S4-P1" "G5-S4-P1" "G1-S1-P2" "G2-S1-P2" "G3-S1-P2" "G4-S1-P2"
[25] "G5-S1-P2" "G1-S2-P2" "G2-S2-P2" "G3-S2-P2" "G4-S2-P2" "G5-S2-P2"
[31] "G1-S3-P2" "G2-S3-P2" "G3-S3-P2" "G4-S3-P2" "G5-S3-P2" "G1-S4-P2"
[37] "G2-S4-P2" "G3-S4-P2" "G4-S4-P2" "G5-S4-P2" "G1-S1-P3" "G2-S1-P3"
[43] "G3-S1-P3" "G4-S1-P3" "G5-S1-P3" "G1-S2-P3" "G2-S2-P3" "G3-S2-P3"
[49] "G4-S2-P3" "G5-S2-P3" "G1-S3-P3" "G2-S3-P3" "G3-S3-P3" "G4-S3-P3"
[55] "G5-S3-P3" "G1-S4-P3" "G2-S4-P3" "G3-S4-P3" "G4-S4-P3" "G5-S4-P3"
[61] "G1-S1-P4" "G2-S1-P4" "G3-S1-P4" "G4-S1-P4" "G5-S1-P4" "G1-S2-P4"
[67] "G2-S2-P4" "G3-S2-P4" "G4-S2-P4" "G5-S2-P4" "G1-S3-P4" "G2-S3-P4"
[73] "G3-S3-P4" "G4-S3-P4" "G5-S3-P4" "G1-S4-P4" "G2-S4-P4" "G3-S4-P4"
[79] "G4-S4-P4" "G5-S4-P4" "G1-S1-P5" "G2-S1-P5" "G3-S1-P5" "G4-S1-P5"
[85] "G5-S1-P5" "G1-S2-P5" "G2-S2-P5" "G3-S2-P5" "G4-S2-P5" "G5-S2-P5"
[91] "G1-S3-P5" "G2-S3-P5" "G3-S3-P5" "G4-S3-P5" "G5-S3-P5" "G1-S4-P5"
[97] "G2-S4-P5" "G3-S4-P5" "G4-S4-P5" "G5-S4-P5"

Example 4

x4<-c("Male","Female")
y4<-c("Tall","Short")
z4<-c("1000 to 2000","2001 to 5000","5001 to 10000",">10000")
a4<-c("Y1","Y2","Y3","Y4","Y5","Y6")
apply(expand.grid(x4,y4,z4,a4),1,paste,collapse="-")

Output

[1]  "Male-Tall-1000 to 2000-Y1" "Female-Tall-1000 to 2000-Y1"
[3]  "Male-Short-1000 to 2000-Y1" "Female-Short-1000 to 2000-Y1"
[5]  "Male-Tall-2001 to 5000-Y1" "Female-Tall-2001 to 5000-Y1"
[7]  "Male-Short-2001 to 5000-Y1" "Female-Short-2001 to 5000-Y1"
[9]  "Male-Tall-5001 to 10000-Y1" "Female-Tall-5001 to 10000-Y1"
[11] "Male-Short-5001 to 10000-Y1" "Female-Short-5001 to 10000-Y1"
[13] "Male-Tall->10000-Y1" "Female-Tall->10000-Y1"
[15] "Male-Short->10000-Y1" "Female-Short->10000-Y1"
[17] "Male-Tall-1000 to 2000-Y2" "Female-Tall-1000 to 2000-Y2"
[19] "Male-Short-1000 to 2000-Y2" "Female-Short-1000 to 2000-Y2"
[21] "Male-Tall-2001 to 5000-Y2" "Female-Tall-2001 to 5000-Y2"
[23] "Male-Short-2001 to 5000-Y2" "Female-Short-2001 to 5000-Y2"
[25] "Male-Tall-5001 to 10000-Y2" "Female-Tall-5001 to 10000-Y2"
[27] "Male-Short-5001 to 10000-Y2" "Female-Short-5001 to 10000-Y2"
[29] "Male-Tall->10000-Y2" "Female-Tall->10000-Y2"
[31] "Male-Short->10000-Y2" "Female-Short->10000-Y2"
[33] "Male-Tall-1000 to 2000-Y3" "Female-Tall-1000 to 2000-Y3"
[35] "Male-Short-1000 to 2000-Y3" "Female-Short-1000 to 2000-Y3"
[37] "Male-Tall-2001 to 5000-Y3" "Female-Tall-2001 to 5000-Y3"
[39] "Male-Short-2001 to 5000-Y3" "Female-Short-2001 to 5000-Y3"
[41] "Male-Tall-5001 to 10000-Y3" "Female-Tall-5001 to 10000-Y3"
[43] "Male-Short-5001 to 10000-Y3" "Female-Short-5001 to 10000-Y3"
[45] "Male-Tall->10000-Y3" "Female-Tall->10000-Y3"
[47] "Male-Short->10000-Y3" "Female-Short->10000-Y3"
[49] "Male-Tall-1000 to 2000-Y4" "Female-Tall-1000 to 2000-Y4"
[51] "Male-Short-1000 to 2000-Y4" "Female-Short-1000 to 2000-Y4"
[53] "Male-Tall-2001 to 5000-Y4" "Female-Tall-2001 to 5000-Y4"
[55] "Male-Short-2001 to 5000-Y4" "Female-Short-2001 to 5000-Y4"
[57] "Male-Tall-5001 to 10000-Y4" "Female-Tall-5001 to 10000-Y4"
[59] "Male-Short-5001 to 10000-Y4" "Female-Short-5001 to 10000-Y4"
[61] "Male-Tall->10000-Y4" "Female-Tall->10000-Y4"
[63] "Male-Short->10000-Y4" "Female-Short->10000-Y4"
[65] "Male-Tall-1000 to 2000-Y5" "Female-Tall-1000 to 2000-Y5"
[67] "Male-Short-1000 to 2000-Y5" "Female-Short-1000 to 2000-Y5"
[69] "Male-Tall-2001 to 5000-Y5" "Female-Tall-2001 to 5000-Y5"
[71] "Male-Short-2001 to 5000-Y5" "Female-Short-2001 to 5000-Y5"
[73] "Male-Tall-5001 to 10000-Y5" "Female-Tall-5001 to 10000-Y5"
[75] "Male-Short-5001 to 10000-Y5" "Female-Short-5001 to 10000-Y5"
[77] "Male-Tall->10000-Y5" "Female-Tall->10000-Y5"
[79] "Male-Short->10000-Y5" "Female-Short->10000-Y5"
[81] "Male-Tall-1000 to 2000-Y6" "Female-Tall-1000 to 2000-Y6"
[83] "Male-Short-1000 to 2000-Y6" "Female-Short-1000 to 2000-Y6"
[85] "Male-Tall-2001 to 5000-Y6" "Female-Tall-2001 to 5000-Y6"
[87] "Male-Short-2001 to 5000-Y6" "Female-Short-2001 to 5000-Y6"
[89] "Male-Tall-5001 to 10000-Y6" "Female-Tall-5001 to 10000-Y6"
[91] "Male-Short-5001 to 10000-Y6" "Female-Short-5001 to 10000-Y6"
[93] "Male-Tall->10000-Y6" "Female-Tall->10000-Y6"
[95] "Male-Short->10000-Y6" "Female-Short->10000-Y6"
raja
Published on 05-Dec-2020 13:01:10
Advertisements