I'd like to capture the results of a print() command so that I can put the results in a tktext widget. I know I can redirect the output to a file with sink. I'm looking for something like that, but where I can redirect the output into a variable. Is there a way to do that? Mike -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
On 10 Sep 2002, Michael A. Miller wrote:> I'd like to capture the results of a print() command so that I > can put the results in a tktext widget. I know I can redirect > the output to a file with sink. I'm looking for something like > that, but where I can redirect the output into a variable. Is > there a way to do that? >Look at textConnection -thomas -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
mmiller3 at iupui.edu (Michael A. Miller) writes:> I'd like to capture the results of a print() command so that I > can put the results in a tktext widget. I know I can redirect > the output to a file with sink. I'm looking for something like > that, but where I can redirect the output into a variable. Is > there a way to do that?You can sink() to a textConnection. I might prefer just to use a temporary file, though... t<-textConnection("xxx","w") sink(t) ls("package:base") sink() library(tcltk) tkpack(txt<-tktext(tt<-tktoplevel())) tkinsert(txt, "end", (paste(xxx,"\n",collapse=""))) -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Here are two small functions that I've been using lately. They show how to
use textConnection to capture printed output:
texteval <- function( sourceText, collapse=NULL, echo=TRUE )
{
sourceConn <- textConnection(sourceText, open="r")
resultConn <- textConnection("resultText", open="w")
sink(resultConn)
tmp <- source(file=sourceConn, local=FALSE, echo=echo, print.eval=TRUE)
sink()
close(resultConn)
close(sourceConn)
return( paste(c(resultText, collapse), collapse=collapse) )
# the reason for c(result, collapse) is so that we get the line
# terminator on the last line of output. Otherwise, it just shows up
# between the lines.
}
printed <- function( sourceText, collapse=NULL )
{
return( texteval(sourceText, collapse, FALSE) )
}
For example:
> printed(" x <- rnorm(100); y <- rnorm(100); print(summary( lm( y
~ x )))"
)
[1] ""
[2] "Call:"
[3] "lm(formula = y ~ x)"
[4] ""
[5] "Residuals:"
[6] " Min 1Q Median 3Q Max "
[7] "-2.4206 -0.7519 0.1062 0.7153 2.3810 "
[8] ""
[9] "Coefficients:"
[10] " Estimate Std. Error t value Pr(>|t|)"
[11] "(Intercept) 0.09799 0.10745 0.912 0.364"
[12] "x -0.00171 0.11397 -0.015 0.988"
[13] ""
[14] "Residual standard error: 1.074 on 98 degrees of freedom"
[15] "Multiple R-Squared: 2.298e-06,\tAdjusted R-squared: -0.0102 "
[16] "F-statistic: 0.0002252 on 1 and 98 DF, p-value: 0.988 "
[17] ""
-Greg
> -----Original Message-----
> From: Thomas Lumley [mailto:tlumley at u.washington.edu]
> Sent: Tuesday, September 10, 2002 3:45 PM
> To: Michael A. Miller
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] capturing the result of print in a variable?
>
>
> On 10 Sep 2002, Michael A. Miller wrote:
>
> > I'd like to capture the results of a print() command so that I
> > can put the results in a tktext widget. I know I can redirect
> > the output to a file with sink. I'm looking for something like
> > that, but where I can redirect the output into a variable. Is
> > there a way to do that?
> >
> Look at textConnection
>
> -thomas
>
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
> -.-.-.-.-.-.-.-.-
> r-help mailing list -- Read
> http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !) To:
> r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
> _._._._._._._._._
>
LEGAL NOTICE
Unless expressly stated otherwise, this message is confidential and may be
privileged. It is intended for the addressee(s) only. Access to this E-mail by
anyone else is unauthorized. If you are not an addressee, any disclosure or
copying of the contents of this E-mail or any action taken (or not taken) in
reliance on it is unauthorized and may be unlawful. If you are not an addressee,
please inform the sender immediately.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at
stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._