[R] Using pipe for input data

David L. Van Brunt, Ph.D. informatics at myhelios.net
Fri Aug 6 16:25:15 CEST 2004


I've been watching with interest on this one. I've had problems with 
looping a randomForest procedure within R, and despite heroic efforts 
by the R developers this problem hasn't been solved.

I was thinking that if I could loop through the data extraction (from a 
MySQL) in the system, then call R inside the loop with the new data, 
and append a file with the results.

Does this seem feasible?

On Aug 6, 2004, at 1:22 AM, Prof Brian Ripley wrote:

> The C stdin is used *always* to read commands from on Unix R, and even 
> on
> console versions stdin() is where the commands are read from.
>
> R CMD BATCH is approximately giving you
>
> R --vanilla --slave < my.R
>
> and piping to such a command is going to do nothing for you.
> Your command read.table(stdin() ... is going to read from the script 
> my.R.
>
> On Thu, 5 Aug 2004, Hayashi Soichi - shayas wrote:
>
>> I have asked this question before and Aaron J. Mackey and Tony Plate 
>> gave me
>> some great insight but I still can't figure out how to do what I am 
>> trying
>> to accomplish. So let me ask again...
>>
>> What I am trying to do is to make R read data from pipe (stdin).
>>
>> Say I have following files on my directory
>>
>> my.dat
>>        apple 1
>>        orange 2
>>        grape 3
>>
>> my.R
>>        d <- read.table( stdin(), header=F, dec='.',
>> col.names=c("name","type"), na.strings=c("xxxx"))
>>        summary(d)
>>
>> and When I run this command
>>
>>        cat my.dat | R CMD BATCH --vanilla --slave my.R
>>
>> I am expecting to see the summery report for the datasource my.dat
>>
>> But here is what I actually see in my.Rout
>> 	> d <- read.table( stdin(), header=F, dec='.',
>> col.names=c("name","type"), na.strings=c("xxxx"))
>> 	0: summary(d)
>> 	1: proc.time()
>> 	2: Error in scan(file = file, what = what, sep = sep, quote = quote,
>> dec = dec,  :
>> 	line 1 did not have 2 elements
>> 	Execution halted
>>
>> If I execute the content of the my.R on regular R command line, I can
>> actually "type in" all datasource and creates the correct summery 
>> report. So
>> I don't know why I can make R to read the input from the piped 
>> datasource...
>
> See the above analysis.  What I don't know is why you expected this to
> work: did you look at the sources, e.g. the file BATCH?  If not - 
> `great
> insight' - the sources are the definitive documentation.
>
> -- 
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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
>




More information about the R-help mailing list