JWC
2010-Mar-02 22:26 UTC
[R] Output to sequentially numbered files... also, ideas for running R on Xgrid
Hello, I have some code to run on an XGrid cluster. Currently the code is written as a single, large job... this is no good for trying to run in parallel. To break it up I have basically taken out the highest level for-loop and am planning on batch-running many jobs, each one representing an instance of the removed loop. However, when it comes to output I am stuck. Previously the output was an array of [x, y, i] dimensions. The removed for-loop ran through i, each iteration filling a x-y slice of the output array. Now the function returns a single xy matrix for a supplied, single value of i. Is there a way to output to sequentially numbered csv files such that they can be reconstituted into the [x, y, i] array? I have tried: write(x, file=get("n")) Where n is the value of i the function is running for. But I get the error: 'file' must be a character string or connection Is there a way of writing out to a csv file numbered with the value of a variable? Also, is this a very complicated way of parallelising this function? Many thanks, Joe -- View this message in context: http://n4.nabble.com/Output-to-sequentially-numbered-files-also-ideas-for-running-R-on-Xgrid-tp1575824p1575824.html Sent from the R help mailing list archive at Nabble.com.
Mario Valle
2010-Mar-03 05:20 UTC
[R] Output to sequentially numbered files... also, ideas for running R on Xgrid
write.csv(x, file=sprintf("prefix%05d.csv", n)) On 02-Mar-10 23:26, JWC wrote:> > Hello, > > I have some code to run on an XGrid cluster. Currently the code is written > as a single, large job... this is no good for trying to run in parallel. To > break it up I have basically taken out the highest level for-loop and am > planning on batch-running many jobs, each one representing an instance of > the removed loop. > > However, when it comes to output I am stuck. Previously the output was an > array of [x, y, i] dimensions. The removed for-loop ran through i, each > iteration filling a x-y slice of the output array. Now the function returns > a single xy matrix for a supplied, single value of i. > > Is there a way to output to sequentially numbered csv files such that they > can be reconstituted into the [x, y, i] array? > > I have tried: > > write(x, file=get("n")) > > Where n is the value of i the function is running for. > > But I get the error: > > 'file' must be a character string or connection > > Is there a way of writing out to a csv file numbered with the value of a > variable? > > Also, is this a very complicated way of parallelising this function? > > Many thanks, > > Joe > >-- Ing. Mario Valle Data Analysis and Visualization Group | http://www.cscs.ch/~mvalle Swiss National Supercomputing Centre (CSCS) | Tel: +41 (91) 610.82.60 v. Cantonale Galleria 2, 6928 Manno, Switzerland | Fax: +41 (91) 610.82.82