[R] How to capture console output in a numeric format

Ravi Varadhan rvaradhan at jhmi.edu
Fri Jun 24 18:02:28 CEST 2011


I did think of this solution, Keith, but I am generally uncomfortable (may be "paranoid" is a better word) with the use of `<<-'.  Perhaps, my fear is unjustified in this particular situation.

Thanks,
Ravi.
-------------------------------------------------------
Ravi Varadhan, Ph.D.
Assistant Professor,
Division of Geriatric Medicine and Gerontology School of Medicine Johns Hopkins University

Ph. (410) 502-2619
email: rvaradhan at jhmi.edu


-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Keith Jewell
Sent: Friday, June 24, 2011 11:49 AM
To: r-help at stat.math.ethz.ch
Subject: Re: [R] How to capture console output in a numeric format

If you don't want the information as character, why are you printing it 
rather than storing it in a matrix?
Why not something along the lines of this...

fr <- function(x) {   ## Rosenbrock Banana function
    on.exit(aMatrix <<- rbind(aMatrix,(cbind(x1, x2, f))))
    x1 <- x[1]
    x2 <- x[2]
    f <- 100 * (x2 - x1 * x1)^2 + (1 - x1)^2
    f
}
aMatrix <- NULL
ans <- optim(c(-1.2,1), fr)
aMatrix

HTH

Keith J
-----Original Message-----
"Ravi Varadhan" <rvaradhan at jhmi.edu> wrote in message 
news:2F9EA67EF9AE1C48A147CB41BE2E15C303EA5D at DOM-EB-MAIL1.win.ad.jhu.edu...
Thank you very much, Jim.  That works!

I did know that I could process the character strings using regex, but was
also wondering if there was a direct way to get this.

Suppose, in the current example I would like to obtain a 3-column matrix 
that contains the parameters and the function value:

fr <- function(x) {   ## Rosenbrock Banana function
    on.exit(print(cbind(x1, x2, f)))
    x1 <- x[1]
    x2 <- x[2]
    f <- 100 * (x2 - x1 * x1)^2 + (1 - x1)^2
    f
}

fvals <- capture.output(ans <- optim(c(-1.2,1), fr))

Now, I need to tweak your solution to get the 3-column matrix.  It would be
nice, if there was a more direct way to get the numerical output, perhaps a
numeric option in capture.output().

Best,
Ravi.

-------------------------------------------------------
Ravi Varadhan, Ph.D.
Assistant Professor,
Division of Geriatric Medicine and Gerontology School of Medicine Johns 
Hopkins University

Ph. (410) 502-2619
email: rvaradhan at jhmi.edu

______________________________________________
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.



More information about the R-help mailing list