Таблица reg_data
является таблицей PostgreSQL. Оказывается, быстрее запускать регрессии в PostgreSQL. Но, поскольку я запускаю его для 100 000 наборов данных, я хочу сделать набор данных набором данных и добавить результаты каждого в таблицу.
Есть ли способ добавить данные PostgreSQL в таблицу PostgreSQL, используя собственные глаголы dplyr
? Я не уверен, что передача данных в 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)