[R] littler+dget+stdin -> segmentation fault
John Lawrence Aspden
news at aspden.com
Fri Jan 5 00:55:58 CET 2007
Jeffrey Horner wrote:
> John Lawrence Aspden wrote:
>> Hi, I'm trying to write a series of pipes using littler, and I get the
>> following behaviour:
>>
>> $ r -e 'a<-dget(file=stdin()); print(a)'
>> ?list(a=2)
>> Segmentation fault
>
> You've found a bug which has been fixed. Expect a new version 0.0.9 of
> littler later tonight from here:
>
> http://dirk.eddelbuettel.com/code/littler/
>
> What exactly are you trying to accomplish?
Hi Jeff, that's gratifying! Thanks.
I'm trying to write some scripts to process the output from a brain scanner,
using some routines which someone else wrote to use interactively in R.
The idea is to hide R from the end-user so that as far as they're concerned
it's just a normal unix filter. Indeed the end-user is probably going to be
another program eventually.
However the first process is a time consuming wavelet transform and
correlation step, and then there are loads of possibilities for what to do
with the result.
so I want to be able to say:
process1 <brain.data >processed.data (time consuming)
to do the hard bit, and then e.g.
process2 <processed.data
process3 <processed.data | graphing-tool
to produce various visualizations and statistics
I'm using dput/dget to read and write the intermediate structure (a list of
matrices). All the other methods seem to remember the structure's original
name and then stick it in the global namespace, which I find annoying. I
also like the fact that dput/dget work with text files, which means that
one day I'll be able to drop in a replacement for process1 written in C to
deal with anticipated huge data sets.
This seems to be working well so far (I'm only prototyping to see if it's
feasible), but I'm having to work around the bug by having the file as a
command line argument rather than piping it in.
Cheers, John.
--
Contractor in Cambridge UK -- http://www.aspden.com
More information about the R-help
mailing list