Question

I'm trying to take the results of a linear regression performed in R and store those results in a database.

Specifically, what I'm after is the data in coef(summary(myModel). I can turn that into a dataframe and use sqlSave(), but the coefficient names are not a column in the dataframe. How to I get the coefficients and the variable names into a single dataframe that can be saved using sqlSave()?

For clarity, I'm trying to store the data in a database table that has the columns:

VariableName, Estimate, StdError, tValue, pValue

Is there an easier way to prepare this data to be stored in a database? As an example here's what the results of coef(summary(myModel)) gives:

                        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
Was it helpful?

Solution

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

If you want to add your own column names:

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

OTHER TIPS

The table produced by summary.lm is a matrix. You can coerce toa dataframe with as.data.frame

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

The column names should be coerced to column names that have no spaces or quotes.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top