Я использую dbplyr для получения данных из нашей базы данных sql. В основном я работаю так:
1) Я загружаю те же данные из одной таблицы, например:
flights <-
tbl(delta, "us") %>%
select(id, origin) %>%
collect()
2) Затем я использую эти данные для фильтрации данных из других таблиц и т. Д.
passangers <-
tbl(customers, "all") %>%
filter(flight_id %in% flights$id) %>%
filter(year == "2018") %>%
collect()
payments <-
tbl(incoming_payments, "all") %>%
filter(flight_id %in% flights$id) %>%
filter(year == "2018") %>%
collect()
contact_data <-
tbl(emails, "all") %>%
filter(customer_id %in% passangers $id) %>%
filter(type == "email") %>%
collect()
Это работает хорошо, пока мне не нужно загружать данные из большего количества таблиц. С этого момента я создаю фрейм данных для каждого запроса, и я знаю, как загружать данные из одной таблицы одним запросом. Я создаю очень много фреймов данных, и код повторяется даже в этом простом примере.
Таким образом, мой вопрос, есть ли способ, как написать идеальный запрос более просто в идеале только с одним созданным фреймом данных. Но с возможностью фильтрации данных, как я (я фильтрую только flight_ids, которые присутствуют в фрейме данных о рейсах и т. Д.)