Я новичок в Stackoverflow и довольно новичок в R. Я был бы очень признателен за вашу помощь.
Я использую функцию dplyr
mutate()
для создания набора новых столбцов на основе одного исходного столбца,Для априорно известного числа создаваемых столбцов все работает нормально.
Однако в моем приложении число создаваемых новых столбцов неизвестно (или скорее определяется как входной параметр перед запуском кода).
Для иллюстрации рассмотрим следующий минимальный рабочий пример:
library(RSQLite)
library(dplyr)
library(dbplyr)
library(DBI)
con <- DBI::dbConnect(RSQLite::SQLite(), path = ":memory:")
copy_to(con, mtcars, "mtcars", temporary = FALSE)
db <- tbl(con, "mtcars") %>%
select(carb) %>%
distinct(carb) %>%
arrange(carb) %>%
mutate(carb1 = carb + 1) %>%
mutate(carb2 = carb + 2) %>%
mutate(carb3 = carb + 3) %>%
show_query() %>%
collect()
В этом примере я создаю три новые переменные. Однако я хочу, чтобы программа работала с динамическим числом переменных (например, пять или десять новых переменных). Я также хотел бы выполнить все вычисления до collect()
, потому что я хочу скопировать данные в память как можно позже.
Некоторые предыстории для моего реального приложения: я хочу использовать Функция DB2 ADD_MONTHS () . Поэтому мне нужно dplyr
/ dbplyr
, чтобы сбросить эту функцию непосредственно в команду SQL. Поэтому мне нужно решение, которое на самом деле не использует логику фрейма данных - мне нужно, чтобы решение находилось в dplyr
.
С другой точки зрения: в SAS я использовал бы макропроцессор для динамической сборки процессаSQL заявление. Есть ли эквивалент в R?