Hi,
What about using cat()?
Here is a piece of code that allows to bypass standard output to produce such a result.
Be carefull: it is dangerous: it replaces output by calling 'cat()', which is not allowed on all objects...
-----
EatOutput <- function(start=TRUE,stop=!start){
if (start)
{ ToCat <- function()
{
function(expr,value,ok,visible){
if (visible) {
sink()
cat(value,file="")
cat("\n",file="")
on.exit(sink("tmp"),add=TRUE)
}
invisible(return(TRUE))
}
} on.exit(sink("tmp"),add=TRUE) # To create the first sink
on.exit(.out<<-addTaskCallback(ToCat()),add=TRUE)
}
else
{
test <- try(removeTaskCallback(.out))
if(!inherits(test,"try-error")) sink()} }
-----
Now suppose this piece of code is put in file "eat.r", ending with a call to the function EatOutput()
Then:
> echo "source('eat.r');sum(1:10)" | R --slave
55If you explain more clearly your needs, maybe we we could propose something more accurate.
Eric
> echo "cat(sum(c(1,2,3)));cat("\n");cat(3*2)" | R --slave 66
At 13:49 24/02/2004, Dirk Eddelbuettel wrote:
On Tue, Feb 24, 2004 at 10:07:32AM +0100, Martin Maechler wrote: > >>>>> "Jan" == Jan de Leeuw <[EMAIL PROTECTED]> > >>>>> on Tue, 24 Feb 2004 00:52:51 -0800 writes: > > Jan> if R had something like > >> python -c "print(sum([1,2,3]));print(3*2)" > Jan> 6 6 > > Jan> but I guess the only way to do this is by writing the > Jan> string to a tmp file and then doing something like "R > Jan> CMD BATCH --quiet" on the tmp file > > Well, a bit better (with a shell prompt "%") is > > % echo "print(sum(c(1,2,3)));print(3*2)" | R --quiet --vanilla > > > print(sum(c(1,2,3)));print(3*2) > [1] 6 > [1] 6 > > > > or (slightly nicer) > > % echo "sum(c(1,2,3)); 3*2" | R --quiet --vanilla > > sum(c(1,2,3)); 3*2 > [1] 6 > [1] 6 > > > > but it still echoes the input by default
Not with --slave:
[EMAIL PROTECTED]:~> echo "sum(c(1,2,3)); 3*2" | R --slave [1] 6 [1] 6
I would be pretty trivial to filter the "^[1] " out.
Dirk
-- The relationship between the computed price and reality is as yet unknown. -- From the pac(8) manual page
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Eric Lecoutre UCL / Institut de Statistique Voie du Roman Pays, 20 1348 Louvain-la-Neuve Belgium
tel: (+32)(0)10473050 [EMAIL PROTECTED] http://www.stat.ucl.ac.be/ISpersonnel/lecoutre
If the statistics are boring, then you've got the wrong numbers. -Edward Tufte
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
