该表reg_data
是 PostgreSQL 表。事实证明,在 PostgreSQL 中运行回归更快。但是,当我为 100,000 个数据集运行它时,我想逐个数据集地执行它,并将每个数据集的结果附加到一个表中。
有没有办法使用原生dplyr
动词将 PostgreSQL 数据附加到 PostgreSQL 表中?我不确定将数据带到 R 然后将它们发送回 PostgreSQL 的成本很高(它只有 6 个数字和几个标识字段),但它看起来确实不优雅。
library(dplyr)
pg <- src_postgres()
reg_data <- tbl(pg, "reg_data")
reg_results <-
reg_data %>%
summarize(r_squared=regr_r2(y, x),
num_obs=regr_count(y, x),
constant=regr_intercept(y, x),
slope=regr_slope(y, x),
mean_analyst_fog=regr_avgx(y, x),
mean_manager_fog=regr_avgy(y, x)) %>%
collect() %>%
as.data.frame()
# Push to database.
dbWriteTable(pg$con, c("bgt", "within_call_data"), reg_results,
append=TRUE, row.names=FALSE)