Я использую dplyr для выполнения определенных операций в Redshift, поэтому я не загружаю данные в память.
data <- tbl(conn, "customers") %>%
filter(age >= 18)
subset <- data %>%
filter(eye_color != "brown") %>%
group_by(gender, method, age, region) %>%
summarise(sum(purchases)) %>% # will create a column called sum(purchases)
full_join(data, by=c("region", "age", "method"))
Прямо сейчас, когда я смотрю на результирующий кадр данных, я вижу столбец с именем sum(purchases)
и хочу переименовать его в purchases
, который создаст столбцы purchase.x
и purchase.y
после слияния.
Большинство переименований, которые я прочитал до сих пор, имеют дело с кадрами данных, которые находятся в памяти, а не с кадрами данных, которые лениво оцениваются с помощью dbplyr. Я пытался использовать rename
, rename_
, rename_at
, а также различные варианты select
. Я также попробовал стратегии, изложенные здесь и здесь но не повезло
Есть ли способ переименовать sum(purchases)
. Единственный другой вариант, который у меня есть, это загрузить фрейм данных в память на определенном шаге
data <- tbl(conn, "customers") %>%
filter(age >= 18)
subset <- data %>%
filter(eye_color != "brown") %>%
group_by(gender, method, age, region) %>%
summarise(sum(purchases)) %>%
loaded <- as.data.frame(subset)
# do some join here but in memory and not in Redshift
# full_join(data, by=c("region", "age", "method"))