[R] R 2.5.1 - Rscript through tee

Dirk Eddelbuettel edd at debian.org
Mon Aug 27 16:02:31 CEST 2007


On 26 August 2007 at 22:47, François Pinard wrote:
| I met a little problem for which someone might have a solution.  Let's 
| say I have an executable file (named "pp.R") with this contents:
| 
|    #!/usr/bin/Rscript
|    options(echo=TRUE)
|    a <- 1
|    Sys.sleep(3)
|    a <- 2
| 
| If I execute "./pp.R" at the shell prompt, the output shows the timely 
| progress of the script as expected.  If I use "./pp.R | tee OUT" 
| instead, the output seems buffered and I see it all at once at the end.
| 
| The problem does not come from the "tee" program, as if I use this 
| command:
| 
|    (echo a; sleep 5; echo b) | tee OUT
| 
| the output is timely, not batched.
| 
| So, is there a way to tell R (or Rscript) that standard output should be 
| unbuffered, even if it is not directly connected to a terminal?

Use explicit print statements, e.g.  print(a <- 1)

Also, you still have little as an alternate, at least on Unix [1].  Littler5D
actually won't show anything unless you explicitly call cat() or print(), but
then it does:

qa-v40z1:~/svn/hancock/app/aggposview> cat /tmp/fp2.r
#!/usr/bin/env r

options(echo=TRUE)
cat(a <- 1, "\n")
Sys.sleep(3)
cat(a <- 2, "\n")
foo:~> /tmp/fp2.r | tee /tmp/fp2.r.out
1
2
foo:~> 

Littler is an 'all-in' binary and starts and runs demonstrably faster than
Rscript. 

Hth, Dirk
 
[1] And despite the rather petty refusal of Rscript's main author to a least
give a reference to littler in Rscript's documentation, let alone credit as
'we were there first', the fact remains that littler became available in Sep
2006 whereas Rscript was not released until R 2.5.0 a good six month
later. Oh well. 



| In case useful, here is local R information:
| 
| Version:
|  platform = x86_64-unknown-linux-gnu
|  arch = x86_64
|  os = linux-gnu
|  system = x86_64, linux-gnu
|  status = 
|  major = 2
|  minor = 5.1
|  year = 2007
|  month = 06
|  day = 27
|  svn rev = 42083
|  language = R
|  version.string = R version 2.5.1 (2007-06-27)
| 
| Locale:
| LC_CTYPE=fr_CA.UTF-8;LC_NUMERIC=C;LC_TIME=fr_CA.UTF-8;LC_COLLATE=fr_CA.UTF-8;LC_MONETARY=fr_CA.UTF-8;LC_MESSAGES=fr_CA.UTF-8;LC_PAPER=fr_CA.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=fr_CA.UTF-8;LC_IDENTIFICATION=C
| 
| Search Path:
|  .GlobalEnv, package:stats, package:utils, package:datasets, fp.etc, package:graphics, package:grDevices, package:methods, Autoloads, package:base
| 
| -- 
| François Pinard   http://pinard.progiciels-bpi.ca
| 
| ______________________________________________
| R-help at 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
| and provide commented, minimal, self-contained, reproducible code.

-- 
Three out of two people have difficulties with fractions.



More information about the R-help mailing list