R:隐藏假人输出

R: Hide dummies output

我是 运行 使用 R 回归的新手。通过做和查看不同的在线教程来学习,这就是我正在做的事情 atm 将 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 中的参数 none 允许这样做,如果我理解正确的话。

也就是说,排除阶乘变量,输出将仅为 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

你可以存储一个summary的输出,然后只得到你想要的部分。如果您只想要系数的一部分 table - 这是一个示例:

#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,]

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

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

然后从系数输出中得到 data.frame(系数是完整输出的第 4 个元素):

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

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

res1[1:2,]