On Thu, Aug 19, 2010 at 6:21 PM, Kevin Coombes <kevin.r.coom...@gmail.com> wrote: > I picked the example from segmenting chromosomes for a reason. I have a > fair chunk of code that deals with not quite exceeding the amount of RAM > available in the machine sitting on my desktop. If I use functions, then > the pass-by-value semantics of R will push me beyond the limits at some > points. (This is an empirical statement, not a theoretical one. I was > bitten by it several times while trying to analyze a couple of these > datasets. And, yes, I know I can get around this by buying a bigger and > better machine; it's on order...) The real point is that using functions > can be detrimental to the efficiency of the program, in ways that have real > world consequences. > > I haven't thought about doing the same thing with expressions. Expressions > don't have quite the same semantics as chunks, and you'd have to make sure > the evaluation was delayed so that you cold use the current values of things > that were computed in the meantime.... and I already know how to do this > with chunks without having to think so hard. > > Using expressons would, however, help with the one difficulty that I have > with reusing <<chunks>> (independent of whether or not I use > 'expand=FALSE'). I usually work inside emacs, using the > emacs-speaks-statistics (ESS) package. ESS doesn't know how to evaluate the > <<chunk>> call inside another chunk. so if I want to step through the code > during development, I have to jump around myself to locate the source > chunks. With expressions that wouldn't matter. > > As I ramble on about this, it occurs to me that the underlying issue is that > <<chunks>> are not first class objects either in the LaTeX world or in the R > world part of Sweave. If there were a way to promote them to first class > objects somehow, then it might make my use of ESS easier while > simultaneously making it easier for Duncan to figure out how to report the > correct line numbers. But I only have an extremely vague idea of how one > might start to do that... >
You could try a macro instead and see how it performs. There is an article by Thomas Lumley in R News 2003-1 and an implementation in the gtools package. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel