Re: [Rd] directing print.packageInfo to a file

From: Kurt Hornik <Kurt.Hornik_at_wu-wien.ac.at>
Date: Mon 02 Aug 2004 - 15:15:38 EST

>>>>> Gabor Grothendieck writes:

> 
> print.packageInfo does not print to the console, it uses file.show.
> For example, on R 1.9.1 patched on Windows XP:
> 

>> require(chron)
> [1] TRUE

>> capture.output(print.packageInfo(help(package = chron)), file = "/abc.txt")
> NULL

>> length(readLines("/abc.txt"))
> [1] 0

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

> 
> 
> Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> writes:
> 
>>>>> Gabor Grothendieck writes:
> 

>> There was a discussion on r-help of getting the output from
>> print.packageInfo into a file. Spencer and I have added a file=
>> argument to print.packageInfo for consideration in R. Had this
>> been available it would have simplified the answer to that
>> thread. If the file= argument is used then the packageInfo
>> information is sent to the file specified rather than displayed
>> using file.show .
> 
> What is wrong with
> 
>      capture.output(print.packageInfo(x, ...), file = NULL)
> 
> for what you want?
> 
> -k
> 

>> print.packageInfo <- function (x, ..., file = NULL)
>> {
>> if (!inherits(x, "packageInfo"))
>> stop("wrong class")
>> outFile <- if (is.null(file))
>> tempfile("RpackageInfo")
>> else
>> file
>> outConn <- file(outFile, open = "w")
>> vignetteMsg <- paste("Further information is available in the following ",
>> "vignettes in directory ", sQuote(file.path(x$path, "doc")),
>> ":", sep = "")
>> headers <- c("", "Description:\n\n", "Index:\n\n", paste(paste(strwrap
>> (vignetteMsg),
>> collapse = "\n"), "\n\n", sep = ""))
>> footers <- c("\n", "\n", "\n", "")
>> formatDocEntry <- function(entry) {
>> if (is.list(entry) || is.matrix(entry))
>> formatDL(entry, style = "list")
>> else entry
>> }
>> for (i in which(!sapply(x$info, is.null))) {
>> writeLines(headers[i], outConn, sep = "")
>> writeLines(formatDocEntry(x$info[[i]]), outConn)
>> writeLines(footers[i], outConn, sep = "")
>> }
>> close(outConn)
>> if (is.null(file))
>> file.show(outFile, delete.file = TRUE, title = paste
>> ("Documentation for package",
>> sQuote(x$name)))
>> invisible(x)
>> }
>
> _______________________________________________
> No banners. No pop-ups. No kidding.

R-devel@stat.math.ethz.ch mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-devel Received on Mon Aug 02 15:19:53 2004

This archive was generated by hypermail 2.1.8 : Fri 18 Mar 2005 - 08:59:16 EST