[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