使用R将lm模型的结果保存到数据库

时间:2013-07-31 20:47:34

标签: database r regression data-manipulation

我正在尝试在R中执行线性回归的结果,并将这些结果存储在数据库中。

具体来说,我所追求的是coef(summary(myModel)中的数据。我可以将其转换为数据框并使用sqlSave(),但系数名称不是数据框中的列。如何将系数和变量名称放入可以使用sqlSave()保存的单个数据框中?

为清楚起见,我正在尝试将数据存储在具有以下列的数据库表中:

  

VariableName,Estimate,StdError,tValue,pValue

是否有更简单的方法来准备将这些数据存储在数据库中?作为一个例子,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 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

summary.lm生成的表格是一个矩阵。您可以使用as.data.frame

强制使用数据框
 df.coef <- as.data.frame( coef(summary(myModel)) )

应将列名强制转换为没有空格或引号的列名。