[R] How to capture console output in a numeric format
Keith Jewell
k.jewell at campden.co.uk
Fri Jun 24 17:49:07 CEST 2011
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
More information about the R-help
mailing list