Звучит так, как будто вы хотите получить декартово произведение id = c('a', 'b', 'c')
и quarters = c(1, 2, 3, 4)
, которое даст вам id_quarter = c(('a',1), ('a',2), ('a',3), ..., ('c',4))
.
. Это можно сделать с помощью соединения с фиктивной переменной, например:
id <- c("a", "b", "c")
df <- data.frame(id)
quarter <- c(1, 2, 3, 4)
df_q <- data.frame(quarter)
# Treat it as a data base table
con <- DBI::dbConnect(RSQLite::SQLite(), path = ":memory:")
copy_to(con, df, "data", temporary = FALSE)
copy_to(con, df_q, "quarter", temporary = FALSE)
# create placeholder column
data <- tbl(con, "data") %>%
mutate(dummy_placeholder = 1)
quarters <- tbl(con, "quarter") %>%
mutate(dummy_placeholder = 1)
# join and collect
result <- data %>%
inner_join(quarter, by = "dummy_placeholder") %>%
collect()