Re: [R] Output from function to a tcltk window

2005-02-04 Thread Peter Dalgaard
Henrik Andersson [EMAIL PROTECTED] writes:

 I would like to display output to a tcltk window from e.g. a call to
 summary().
 
 
 
 I tried to get something else than oneliners into a text window of the
 kind found at:
 
 http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/TextWindows.html
 
 But without success.

(Rcmdr must be doing this sort of thing already?)

I'd try this:

1) str - paste(capture.output(summary(myfit),collapse=\n))

2) clone the tkfaq demo (or one of James W.'s examples), but replace
   the line

   tkinsert(txt, end, tkcmd(read, chn))

with 

   tkinsert(txt, end, str)

-- 
   O__   Peter Dalgaard Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics 2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark  Ph: (+45) 35327918
~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


RE: [R] Output from function to a tcltk window

2005-02-04 Thread John Fox
Dear Peter and Henrik,

What the Rcmdr does may be overkill for Henrik's application, since it also
intercepts error and warning messages, and tries to take the behaviour of
the R console. The relevant functions are in the file Commander.R in the
source package; the principal one is:

doItAndPrint - function(command, log=TRUE) {
messages.connection - textConnection(.messages, open=w)
sink(messages.connection, type=message)
output.connection - textConnection(.Output, open=w)
sink(output.connection, type=output)
on.exit({
sink(type=message)
if (!.console.output) sink(type=output) # if .console.output,
output connection already closed
close(messages.connection)
close(output.connection)
})
if (log) logger(command)
result -  try(eval(parse(text=command), envir=.GlobalEnv), silent=TRUE)
if (class(result)[1] ==  try-error){
tkmessageBox(message=paste(Error:,
strsplit(result, :)[[1]][2]), icon=error)
if (.console.output) sink(type=output)
tkfocus(.commander)
return()
}
if (isS4object(result)) show(result) else print(result)
if (.Output[length(.Output)] == NULL) .Output -
.Output[-length(.Output)] # suppress NULL line at end of output
if (length(.Output) != 0) {  # is there output to print?
if (.console.output) {
out - .Output
sink(type=output)
for (line in out) cat(paste(line, \n, sep=))
}
else{
for (line in .Output) tkinsert(.output, end, paste(line, \n,
sep=))
tkyview.moveto(.output, 1)
}
}
else if (.console.output) sink(type=output)
checkWarnings(.messages)  # errors already intercepted, display any
warnings
result
}

Regards,
 John


John Fox
Department of Sociology
McMaster University
Hamilton, Ontario
Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox 
 

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Peter Dalgaard
 Sent: Friday, February 04, 2005 5:21 AM
 To: Henrik Andersson
 Cc: r-help@stat.math.ethz.ch
 Subject: Re: [R] Output from function to a tcltk window
 
 Henrik Andersson [EMAIL PROTECTED] writes:
 
  I would like to display output to a tcltk window from e.g. 
 a call to 
  summary().
  
  
  
  I tried to get something else than oneliners into a text 
 window of the 
  kind found at:
  
  
 http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/TextWindows.html
  
  But without success.
 
 (Rcmdr must be doing this sort of thing already?)
 
 I'd try this:
 
 1) str - paste(capture.output(summary(myfit),collapse=\n))
 
 2) clone the tkfaq demo (or one of James W.'s examples), but replace
the line
 
tkinsert(txt, end, tkcmd(read, chn))
 
 with 
 
tkinsert(txt, end, str)
 
 -- 
O__   Peter Dalgaard Blegdamsvej 3  
   c/ /'_ --- Dept. of Biostatistics 2200 Cph. N   
  (*) \(*) -- University of Copenhagen   Denmark  Ph: 
 (+45) 35327918
 ~~ - ([EMAIL PROTECTED]) FAX: 
 (+45) 35327907
 
 __
 R-help@stat.math.ethz.ch mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide! 
 http://www.R-project.org/posting-guide.html

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html