2013-05-13 3 views
0

Я хотел бы рассчитать установленные значения для модели, подходящей в R, используя glm для данных в таблице MySQL и передать результат обратно в эту таблицу, как я могу это сделать ?Вставить установленные значения из R-модели в таблицу MySQL

+0

Я думал, что это может быть interessing так часто госзакупках либо знать MySQL _or_ R – Hoffmann

+0

Хотите сохранить предсказанные значения? Коэффициенты регрессии? – Dason

+0

Я хочу сохранить предсказанные (установленные) значения – Hoffmann

ответ

1

# preparation 
library("RMySQL") 
con <- dbConnect(MySQL(), user="####", pass="###", host="127.0.0.1", db="###") 
on.exit(dbDisconnect(con)) 

# fetching the data and calculating fit  
tab <- dbGetQuery(con,"SELECT ID, dep, indep1, indep2 FROM table WHERE !(ISNULL(ID) OR ISNULL(dep) OR ISNULL(indep1) OR ISNULL(indep2))") 
regression = glm(tab$dep ~ tab$indep1 + tab$indep2, gaussian) 

# preparing data for insertion 
insert <- data.frame(tab$ID, fitted.values(regression) 
colnames(insert) <- c('ID', 'dep') 

# table hassle (inserting data, combining with previous table, deleting old and fitresult renaming combined back to original name 
if (dbExistsTable(con, '_result') { 
    dbRemoveTable(con, '_result'); 
} 
dbWriteTable(con, '_result', insert) 
dbSendQuery(con, 'CREATE TABLE temporary SELECT table.*, _result.dep FROM table LEFT JOIN result USING (ID)') 
dbRemoveTable(con, 'table') 
dbRemoveTable(con, '_result') 
dbSendQuery(con, 'RENAME TABLE temporary TO table') 
Смежные вопросы