0

I have 2 vectors.

1 for services:

services <- c('service1', 'service2')

1 for cities:

cities <- c('city1','city2','city3','city4','city5','city6')

I would like to combine them to create a list like this:

c('city1 service1', 'city1 service2','city2 service1', 'city2 service2','city3 service1', 'city3 service2','city4 service1', 'city4 service2','city5 service1', 'city5 service2','city6 service1', 'city6 service2')

I guess I have to use apply, but I can't get the result. Sorry for the silly question.

Thanks for your help!

mtoto
  • 23,919
  • 4
  • 58
  • 71

3 Answers3

2
services <- c('service1', 'service2')
cities <- c('city1','city2','city3','city4','city5','city6')
n <- length(cities)
paste(cities, rep(services, each=n))

 [1] "city1 service1" "city2 service1" "city3 service1" "city4 service1" "city5 service1"
 [6] "city6 service1" "city1 service2" "city2 service2" "city3 service2" "city4 service2"
[11] "city5 service2" "city6 service2"
Marco Sandri
  • 23,289
  • 7
  • 54
  • 58
0

you can use expand.grid then paste

services <- c('service1', 'service2')
cities <- c('city1','city2','city3','city4','city5','city6')
tmp <- expand.grid(services, cities) 

paste(tmp$Var2, tmp$Var1)
amatsuo_net
  • 2,409
  • 11
  • 20
0
services <- c('service1', 'service2')
cities <- c('city1','city2','city3','city4','city5','city6')
df <- expand.grid(services, cities)
res <- paste(df[[1]], df[[2]])
res
Aurèle
  • 12,545
  • 1
  • 31
  • 49