【发布时间】:2020-11-30 10:58:22
【问题描述】:
我正在寻找一种方法来编辑 lm 和 summary.lm 在打印之前如何处理因子变量。
例如,我想要像Month: 6 这样的系数而不是Month6 - 所以在变量名和因子级别之间添加额外的空格和:。我不想将因子变量拆分为单独的列 - 例如model.matrix。
最好在评估 lm 之前以及之后和 summary.lm 之前进行。
例子:
> aa = airquality
> aa$Month = as.factor(aa$Month)
> # possible action
> ll = lm(Ozone~Month, aa)
> # possible action
> ss = summary(ll)
> ss
Call:
lm(formula = Ozone ~ Month, data = aa)
Residuals:
Min 1Q Median 3Q Max
-52.115 -16.823 -7.282 13.125 108.038
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 23.615 5.759 4.101 7.87e-05 ***
Month6 5.829 11.356 0.513 0.609
Month7 35.500 8.144 4.359 2.93e-05 ***
Month8 36.346 8.144 4.463 1.95e-05 ***
Month9 7.833 7.931 0.988 0.325
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 29.36 on 111 degrees of freedom
(37 observations deleted due to missingness)
Multiple R-squared: 0.2352, Adjusted R-squared: 0.2077
F-statistic: 8.536 on 4 and 111 DF, p-value: 4.827e-06
【问题讨论】:
-
这更像是一个黑客,但也许你可以试试
aa$Month = interaction("", as.factor(aa$Month), sep = ":"); summary(lm(Ozone~Month, aa))