Skip to content
Prev 13277 / 63424 Next

directing print.packageInfo to a file

I already suggested using the pager as a workaround
in the original thread although your pager workaround
has the advantage of being 100% in R while mine used
a batch file which defined a new pager.

Note that R already supports

   options(pager = "console")

but if you do this then it seems that capture.output
still won't capture it.  Thus one alternative solution
would be to get capture.output to work with 
pager = "console" and modify print.packageInfo to
take a pager= argument which it would pass down to file.show.
(file.show already has a pager argument.)

Then one could write:

  capture.output( print.packageInfo(help(package = chron), 
            pager = "console"), file = "myfile.txt")

That gets it down to one line although it still seems
unnecessarily indirect when one could just write:

  print.packageInfo(help(package = chron), file = "myfile.txt")

if print.packageInfo just had a file= argument.
Furthermore, print.packageInfo ALREADY creates the file as a 
temporary file to hand over to file.show so its not much of
a stretch to give the user access to what it is already 
creating anyway.

From:   	Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
But file.show() can be tuned by playing with options(pager).

In your case, something like

oop <- options(pager = function(file, ...) writeLines(readLines(file)))
capture.output(print.packageInfo(help(package = "stats")),
      file = "abc.txt")
options(oop)

gives

R> length(readLines("abc.txt"))
[1] 345

Hth
-k