2013-07-31 23 views
1

我試圖在R中執行線性迴歸的結果並將這些結果存儲在數據庫中。使用R將lm模型的結果保存到數據庫中

具體來說,我後面的是coef(summary(myModel)中的數據。我可以將它變成一個數據幀並使用sqlSave(),但係數名稱不是數據幀中的列。如何將係數和變量名稱放入一個可以使用sqlSave()保存的數據框?

爲清楚起見,我想存儲在數據庫表中的數據具有列:

VARIABLENAME,評估,StdError,tValue,p值

是否有一個更簡單的方法準備將這些數據存儲在數據庫中?作爲一個例子這裏是什麼coef(summary(myModel))結果得出:

     Estimate Std. Error  t value  Pr(>|t|) 
(Intercept)   51.52729727 2.623035966 19.64414439 1.941150e-58 
factor(person)507  -0.73663931 2.627215539 -0.28038785 7.793456e-01 
factor(person)713  -5.18612049 3.317899029 -1.56307363 1.189390e-01 
TransCnt    0.02658798 0.005682853 4.67863266 4.132888e-06 
factor(Month)5   0.67908563 1.119655304 0.60651312 5.445673e-01 
factor(Month)6   2.09595623 1.169658148 1.79193915 7.400639e-02 
factor(Month)7   2.91204838 1.333483558 2.18379024 2.964109e-02 

回答

2
datOut <- summary(myModel)$coef 
datOut <- cbind(VariableName=rownames(datOut), datOut) 
rownames(datOut) <- NULL 

如果你想添加自己的列名:

colnames(datOut) <- c("VariableName", "Estimate", "StdError", "tValue", "pValue") 
datOut 
1

通過summary.lm產生的表是一個矩陣。你可以強迫TOA數據幀與as.data.frame

df.coef <- as.data.frame(coef(summary(myModel))) 

列名應強制爲具有空格或引號的列名。

+0

這給我一個只有4個變量的數據框,包含係數名稱的變量不是數據框中的變量。它仍然是一個昏暗的名字,並且據我所知,sqlSave並不喜歡這樣的名稱。 – Ojen

+0

然後使用'cbind(rownames(df.coef),df.coef)'。說一個函數「不喜歡那個」並不是特別有用。如果問題在於rownames丟失,那麼cbind機動將會起作用。如果問題在於rownames產生了一個錯誤,那麼你就敬酒了,因爲數據框總是有rownames。 –

相關問題