2015-02-23 82 views
-2

不同的,因此,在R控制台我运行一个回归,然后打印系数有:编程中的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. 行没有标签,好像行标签都聚合在底部的列表中。

有没有简单的方法可以很好地打印回归系数和统计数据?

+0

这里没有什么是[可再现的(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible例如),所以我们不知道你的脚本正在打印什么,以及哪些数字不匹配。每个人对“打印效果好”可能意味着什么都有不同的定义,所以你需要非常明确地说明你需要什么。 – MrFlick 2015-02-23 21:57:42

+0

向我们显示显示不一致的实际输出。你的dput结果搞砸了,不可用。打印的差异是否归因于四舍五入? – 2015-02-24 09:20:16

+0

对不起,消失了。所以,我想要对输出进行全面控制。最终结果应该是逗号分隔的文件,其中包含因变量名称,变量估计值std。错误,t值,P值。我知道在R控制台中,我可以做汇总(lm1)$系数和SORT OF得到这个,但在脚本中...以及你可以看到它打印什么。 – 2015-03-09 15:22:06

回答

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")

+0

谢谢,先生! – 2015-02-23 21:33:57

+0

不幸的是,脚本的输出仍然很怪异。我得到完全不同的数字,整洁()仍然以一种尴尬的方式打印输出: -/hmm ..... – 2015-02-23 21:40:06