[R] Remove names and more from list with capture.output()

David Winsemius dwinsemius at comcast.net
Tue Nov 15 14:11:33 CET 2011


On Nov 14, 2011, at 11:49 PM, Sverre Stausland wrote:

> Hi R users,
>
> I end up with a list object after running an anova:
>
>> lm(speed ~ 1 + dist + speed:dist, data = cars) -> Int
>> lm(speed ~ 1 + dist, data = cars) -> NoInt
>> anova(Int, NoInt) -> test
>> test <- test[c("Df", "F", "Pr(>F)")][2,]
>> is.list(test)
> [1] TRUE
>> test
>  Df      F    Pr(>F)
> 2 -1 18.512 8.481e-05 ***
> ---
> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> I would like to use capture.output() when writing this information to
> a text file, but I would like to only print the row, not the names (Df
>     F    Pr(>F)), and not the significance codes. That is, I want the
> text printed to my text file to be:
>
> 2 -1 18.512 8.481e-05 ***
>
the output of capture.output is just going to be a character vector  
and you should select the second element.

 > vec <- capture.output(test)
 > vec[2]
[1] "2 -1 18.512 8.481e-05 ***"

> Is there a way to do this?
>
> Thanks
> Sverre
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list