我正在使用 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"))