С tidyr
это можно сделать с помощью crossing
library(tidyr)
crossing(ab, dates)
# A tibble: 6 x 2
# ab dates
# <chr> <chr>
#1 ab Jan 2018
#2 ab Jan 2019
#3 ab Mar 2019
#4 cd Jan 2018
#5 cd Jan 2019
#6 cd Mar 2019
или с использованием CJ
из data.table
library(data.table)
CJ(ab, dates)
или используя expand.grid
из base R
expand.grid(ab = ab, dates = dates)