Reputation: 499
I wonder how to delete the factornames in a summary. For example I have the factor gender with units (M,W). When I print out the summary the name of the variable is:
genderM
But what I would like to see is just
M
Is it possible to command R to get rid of the factornames when computing the summary of a linear model?
Upvotes: 0
Views: 718
Reputation: 13300
This works also (with the example of Andrie):
outp <- summary(fit)
attr(outp$coefficients, "dimnames")[[1]][2] <- levels(group)[2]
outp
Result:
> outp
Call:
lm(formula = weight ~ group)
Residuals:
Min 1Q Median 3Q Max
-1.0710 -0.4938 0.0685 0.2462 1.3690
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.0320 0.2202 22.850 9.55e-15 ***
Trt -0.3710 0.3114 -1.191 0.249
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.6964 on 18 degrees of freedom
Multiple R-squared: 0.07308, Adjusted R-squared: 0.02158
F-statistic: 1.419 on 1 and 18 DF, p-value: 0.249
Upvotes: 0
Reputation: 179488
You can heed the very sensible advice by @Joris Meys. (In fact, I suggest you do.) Or you can use a kludgy little workaround with a bit of regex
and capture.output
:
# Set up data and fit model
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
fit <- lm(weight ~ group)
Now for the manipulation:
summary.lm
using capture.output
gsub
to substitute each occurrence of your factor levelsThe code:
# Capture output
sfit <- capture.output(print(summary(fit)))
gsub("groupTrt", "Trt ", sfit)
The results:
[1] ""
[2] "Call:"
[3] "lm(formula = weight ~ group)"
[4] ""
[5] "Residuals:"
[6] " Min 1Q Median 3Q Max "
[7] "-1.0710 -0.4938 0.0685 0.2462 1.3690 "
[8] ""
[9] "Coefficients:"
[10] " Estimate Std. Error t value Pr(>|t|) "
[11] "(Intercept) 5.0320 0.2202 22.850 9.55e-15 ***"
[12] "Trt -0.3710 0.3114 -1.191 0.249 "
[13] "---"
[14] "Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 "
[15] ""
[16] "Residual standard error: 0.6964 on 18 degrees of freedom"
[17] "Multiple R-squared: 0.07308,\tAdjusted R-squared: 0.02158 "
[18] "F-statistic: 1.419 on 1 and 18 DF, p-value: 0.249 "
[19] ""
Upvotes: 3