R编程 - R Console中的输出与脚本不同

时间:2015-02-23 19:51:01

标签: r

因此,在R控制台中,我运行回归,然后使用:

打印系数
summary(lm1)$coefficients

结果很漂亮。当我复制和粘贴时它变得混乱,但它看起来很好。每个回归程序的名称列在一个单独的行上,然后是系数,每个都在一个很好的列中,顶部有一个列标题。

在我在终端上运行的脚本中(在我的macbook上,顺便说一下)我使用这个命令:

dput(summary(lm1)$coefficients)

结果(我只是粘贴它的一部分)是

>structure(c(-0.0206181857293946, -0.0017031360313225, 0.000315645616785813,
>0.000599803702896499, 0.000329152314647127, -0.000359972132038397,
>0.0069812874814682, -0.000468798197004485, 0.000260098693454015,
>
>...
>
>0.0292457238789278, 8.66406612930307e-11, 0.316665800834179,
>0.0207690630122154, 0.0080390491577215, 0.0141105679984487, >7.13568902235773e-06
>), .Dim = c(41L, 4L), .Dimnames = list(c("RatiotoSPY", >"fiveDayRatioStdDev",
>"RANKfiveDayRatioStdDev", "slopeFiveDayRatioStdDev", >"RANKslopeFiveDayRatioStdDev",
>
>....

所以,有一些事情:

  1. 脚本打印的数字本身与控制台打印的数字不匹配。坦率地说,我不确定脚本的打印内容。
  2. 有些行有三个用逗号分隔的数字,而其他行有四个。控制台有4:估计,std.error,t值,Pr(> | t |)。同样,脚本根本不打印与控制台相同的值。
  3. 行没有标签,似乎行标签都汇总到底部的列表中。
  4. 是否有一种简单的方法可以很好地打印出回归系数和统计数据?

1 个答案:

答案 0 :(得分:1)

需要查看令人难以置信的 broom 包。

install.packages("broom")
lmfit <- lm(mpg ~ wt, mtcars)
lmfit

## 
## Call:
## lm(formula = mpg ~ wt, data = mtcars)
## 
## Coefficients:
## (Intercept)           wt  
##       37.29        -5.34

library(broom)
tidy(lmfit)

##          term estimate std.error statistic   p.value
## 1 (Intercept)   37.285   1.8776    19.858 8.242e-19
## 2          wt   -5.344   0.5591    -9.559 1.294e-10

如果您需要summary(lmfit)的输出,请使用glance()

glance(lmfit)

##   r.squared adj.r.squared    sigma statistic      p.value df    logLik      AIC      BIC deviance df.residual
## 1 0.7528328     0.7445939 3.045882  91.37533 1.293959e-10  2 -80.01471 166.0294 170.4266 278.3219          30

通过插图提供的其他信息:browseVignettes(package="broom")