R:隐藏假人输出

时间:2015-04-13 16:53:45

标签: r regression

我刚开始使用R运行回归。边做边学,查看不同的在线教程,我正在做的是将y退回到x1并为x2x3设置假人(但没有互动的虚拟对象) ):

myDataTable[, x2.f := factor(x2)]
myDataTable[, x3.f := factor(x3)]
ols <- myDataTable[, lm(y ~ x1 + x2.f +x3.f)]

现在,我想看一下我的回归输出,但它很长,因为x3有很多(想想成千上万)值,summary(ols)是不可读的。

如何查看回归输出,隐藏两个因子变量的输出?这应该是非常标准的,但如果我理解正确的话,summary.lm中的任何参数都不允许这样做。

即,排除因子变量,输出仅适用于x1

> summary(ols, exclude=list(x2.f, x3.f)

Call:
lm(y ~ x1 + x2.f +x3.f)

Residuals:
   Min     1Q Median     3Q    Max 
-55.99 -38.66 -10.05  33.91 132.18 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) 49.5283522  0.6035625  82.060  < 2e-16 ***
x1          -0.0002951  0.0000633  -4.663  3.2e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2 个答案:

答案 0 :(得分:0)

您可以存储summary的输出,然后只需获取所需的部分。如果你只想要系数表的一部分 - 这是一个例子:

#make example data with 26 factors
X<-rnorm(26000)
Y<-rnorm(26000)
Z<-rep(letters,1000)

#do analysis, store summary and pull rows 1:5 of coefficient table
MyLM<-lm(X~Y+Z)
MySum<-summary(MyLM)
MySum$coef[1:5,]
#### or this produces the same output ###
coef(MySum)[1:5,]

这将为您提供前五行,您可以使用其他索引方法来获得您想要的任何内容,因为MySum$coefcoef(MySum)的输出是矩阵。

对于示例,我存储了lmsummary的结果,但如果您愿意,可以将其全部合并到一行中,例如: summary(lm(x...))$coef[1:5,]

答案 1 :(得分:0)

通过将部分输出另存为DataFrame可以精确地完成您所需要的。然后仅访问所需的部分。这有助于显示系数及其p值。 首先,您需要存储估算结果:

res<-lm(y ~ x1 + x2.f +x3.f)

然后从系数输出中制作data.frame(系数是全部输出的第4个元素):

res1<-data.frame(summary(res))[4])

借助数据框,您现在可以访问/限制为所需的任何内容。例如,如果仅需要前两个系数及其p值:

res1[1:2,]