2015-09-09 53 views
1

有沒有格式化係數估計的方法。值不是很小。我使用LM功能R格式迴歸輸出

    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 *** 
+1

格式化成什麼?我不明白你在問什麼。請給出一個具有預期結果的可重複的例子。你可能只想要'圓(coef(model))' –

回答

2

我喜歡specify_decimal函數,我有很多次從this借來的問題。

我在下面的函數中使用specify_decimal來創建一個'更好的'輸出,指定我喜歡的數字位數。請注意,這只是爲了美化輸出,因爲它會將數字轉換爲字符(我假設您希望將其用於演示目的,否則您只需使用科學記數法)。

功能:

#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 

} 

從LM文檔實例:

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 
+0

當然可以。我只找到'specify_decimal'每一次工作,沒有任何例外(他顯示了一些事情可能會出錯的情況),可能我只是喜歡它太多:P) – LyzandeR

+0

謝謝大家! –

+0

不客氣!樂意效勞 :) – LyzandeR

0

我不知道如果我理解正確,但如果我是我認爲你可以使用數字選項:

options(digits=4) 

在數字選項定義:「位數:控制打印數字值時要打印的位數「。