putting output from print() into a string?
Uwe Ligges <ligges at statistik.uni-dortmund.de> writes:
On Sun, 12 Nov 2000, David Firth wrote:
Is there some neat way of storing the printed representation of an object as a character string? I can see how it could be done via disk using sink() and then scan(), but that's ugly. Something like Lisp-Stat's "with-output-to-string" macro perhaps?
dump() ?
I don't think that was what David was looking for. If you really want to postprocess the printed output, the sink-then-scan method would seem to be the way to do it (or the soon-to- be readLines() instead of scan()). I suppose that a sink(text=...) could be implemented, but AFAIK it is not on anyones TODO list.
That's right, dump() doesn't do what I want: I should have made it clearer that what I would like to store in a string is the prettily-printed representation that gets displayed on the console when print() is called. Yes, sink()-ing to a string would be nice. Or perhaps (more radically?) an optional argument as in print(mydata, return.the.string=TRUE) which requests the return of a string instead of returning the object mydata itself.
One obvious counterquestion is "Why?". It would normally be preferable to retrieve information from the object itself rather than the printed representation, which is generally lossful in a number of ways.
I somehow thought I'd be asked this! I need to exchange information rapidly with a non-R user using write.socket(), and for that purpose the information has to be in the form of a character string. I can of course format the string myself using formatC(), paste(), etc., but it turns out that the way that data frames get formatted by print.matrix() is just right for my purposes. So, rather than duplicate some of the excellent work that went into print.matrix(), I'd like to use it! Thanks anyway for your very helpful answer, Peter: at least I can stop looking now. Regards -- David
-- 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 _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._ ._._._._._
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- 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 _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._