テーブルreg_data
は PostgreSQL テーブルです。PostgreSQL で回帰を実行する方が高速であることが判明しました。しかし、何十万ものデータセットに対して実行しているので、データセットごとにデータセットを実行し、それぞれの結果をテーブルに追加したいと考えています。
dplyr
ネイティブ動詞を使用して PostgreSQL データを PostgreSQL テーブルに追加する方法はありますか? データを R に持ってきてから PostgreSQL に送り返すのに莫大なコストがかかるかどうかはわかりませんが (6 つの数字と 2 つの識別フィールドだけです)、洗練されていないように見えます。
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)