1

Is there a way to format the Coefficient Estimates. The values are not very small. I am using LM function

                   Estimate Std. Error  t value Pr(>|t|) 

  (Intercept)      -1.041e+01  8.259e-02 -126.015  < 2e-16 ***
   QUANTITY         3.929e-01  1.684e-02   23.324  < 2e-16 ***
   WEIGHT           1.125e-04  3.650e-05    3.082  0.00206 ** 
   PACKAGES         5.702e+00  1.135e-01   50.228  < 2e-16 ***
   DEPT_COUNT       1.188e+01  8.834e-02  134.475  < 2e-16 ***
   PROD_CNT         1.062e+00  2.708e-02   39.220  < 2e-16 ***
Amrita Sawant
  • 10,403
  • 4
  • 22
  • 26
  • 1
    Format them into what? I don't understand what you are asking. Please give a reproducible example with desired result. You may just want `round(coef(model))` – Rich Scriven Sep 09 '15 at 22:37

2 Answers2

5

I like the specify_decimal function that I have many times borrowed from this question.

I am using specify_decimal in my below function to create a 'nicer' output specifying the number of digits I like. NOTICE that this is only beautifying the output as it turns numbers into characters (I assume you want this for presentation purposes otherwise you would just use the scientific notation).

Functions:

#specify_decimal
specify_decimal <- function(x, k) format(round(x, k), nsmall=k)

#beautifying summary.lm
new_summary  <- function(lmcoef, digits) {

    coefs <- as.data.frame(lmcoef)
    coefs[] <- lapply(coefs, function(x) specify_decimal(x, digits))
    coefs

}

Example from lm documentation:

ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)

#first argument is the summary(lmobject)$coefficients
#second argument is the number of digits
> new_summary(summary(lm.D9)$coefficients, 5)
            Estimate Std. Error  t value Pr(>|t|)
(Intercept)  5.03200    0.22022 22.85012  0.00000
groupTrt    -0.37100    0.31143 -1.19126  0.24902
Community
  • 1
  • 1
LyzandeR
  • 37,047
  • 12
  • 77
  • 87
  • Sure you can. I just find `specify_decimal` working every single time with no possible exceptions (he shows some cases where things might go wrong), and probably I just like it too much :P) – LyzandeR Sep 09 '15 at 22:51
0

I don't know if I understand you correctly but if I am I think you could use the digits option:

options(digits=4)

On digits option definition: "digits: controls the number of digits to print when printing numeric values.".

dacuna
  • 1,096
  • 1
  • 11
  • 22