Thanks for the input! It does work fine, however I'll have to do another loop to repeat this whole process quite a few times (10^3, 10^4 particles maybe), so I was hoping for a solution without loop. Maybe I could reshape all the values into a big array, dump it to a file and replace some values using system(awk...). I just don't really know how to format the data, having different number of values for some lines. Would that be a sensible thing to do?
thanks, baptiste On 14 Feb 2008, at 16:49, jim holtman wrote: > Here is a start. You basically have to interate through your data and > use 'cat' to write it out: > > particle <- list(dose=c(1,100.0,0),pos=data.frame(x=c(0,1,0,1),y=c > (0,1,0,1))) > output <- file("/tempxx.txt", "w") > cat(particle$dose, "\n", file=output, sep=" ") > for (i in 1:nrow(particle$pos)){ > cat(particle$pos$x[i], particle$pos$y[i], "\n", file=output, > sep=" ") > } > cat("#\n", file=output, sep=" ") > close(output) > > Here is what the file looks like: > > 1 100 0 > 0 0 > 1 1 > 0 0 > 1 1 > # > > > On 2/14/08, baptiste Auguié <[EMAIL PROTECTED]> wrote: >> Hi, >> >> >> I need to create a text file in the following format, >> >>> 1 100.0 0 >>> 0 0 >>> 1 1 >>> 0 0 >>> 1 1 >>> # >>> 1 100.0 0 >>> 0 0 >>> 0 1 >>> 1 0 >>> 1 1 >> ... >> >> where # is part of the format and not a R comment. >> >> Each block (delimited by #) consists of a first line with three >> values, call it dose, and a list of (x,y) coordinates which are a >> matrix or data.frame, >> >> >>> particle <- list(dose=c(1,100.0,0),pos=data.frame(x=c(0,1,0,1),y=c >>> (0,1,0,1))) >>> >>> print(particle) >> >> >> >> I'd like to establish a connection to a file and append to it a >> "particle" block in the format above, or even write the whole file at >> once. >> >> Because different lines have a different number of elements, I >> couldn't get write.table to work in this case, and my attempts at >> sink >> (), dump(), writeLines(), writeChar() all turn into really dirty >> solutions. I have this feeling I'm overlooking a simple solution. >> >> Any help welcome, >> >> >> baptiste >> >> _____________________________ >> >> Baptiste Auguié >> >> Physics Department >> University of Exeter >> Stocker Road, >> Exeter, Devon, >> EX4 4QL, UK >> >> Phone: +44 1392 264187 >> >> http://newton.ex.ac.uk/research/emag >> http://projects.ex.ac.uk/atto >> >> ______________________________________________ >> R-help@r-project.org 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. >> > > > -- > Jim Holtman > Cincinnati, OH > +1 513 646 9390 > > What is the problem you are trying to solve? _____________________________ Baptiste Auguié Physics Department University of Exeter Stocker Road, Exeter, Devon, EX4 4QL, UK Phone: +44 1392 264187 http://newton.ex.ac.uk/research/emag http://projects.ex.ac.uk/atto ______________________________________________ R-help@r-project.org 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.