Yes Henrik, I've also noticed this when cutting and pasting code from here:
http://ace.acadiau.ca/math/ACMMaC/Rmpi/sample.html Try the .Last function for example. Best wishes Richard. Henrik Bengtsson wrote: > On Wed, Feb 27, 2008 at 12:56 AM, Prof Brian Ripley > <[EMAIL PROTECTED]> wrote: > >> On Wed, 27 Feb 2008, Martin Maechler wrote: >> >> > Thank you Henrik, >> > >> >>>>>> "HenrikB" == Henrik Bengtsson <[EMAIL PROTECTED]> >> >>>>>> on Tue, 26 Feb 2008 22:03:24 -0800 writes: >> > >> > {with many superfluous empty statements ( i.e., trailing ";" ): >> >> Indeed! >> > > I like to add a personal touch to the code I'm writing ;) > > Seriously, I added them here as a bait in order to get a chance to say > that I finally found a good reason for adding the semicolons. If you > cut'n'paste code from certain web pages it may happen that > newlines/carriage returns are not transferred and all code is pasted > into the same line at the R prompt. With semicolons you still get a > valid syntax. I cannot remember under what conditions this happened - > if it was for certain web browser, web page/blog, online page editor, > OS and so, but I'm quite sure it was while I've put online code > examples for my latest project. Maybe someoneelse also has noticed > this? > > >> >> > HenrikB> x <- rnorm(1e6); >> > >> > [................] >> > >> > >> > HenrikB> y <- log2(x); # or log10(x) >> > HenrikB> w <- warnings(); >> > HenrikB> print(object.size(w)); >> > HenrikB> ## [1] 8000536 >> > HenrikB> str(w); >> > HenrikB> ## List of 1 >> > HenrikB> ## $ NaNs produced: language log(c(2.12082478659910, >> > HenrikB> 1.40263187453398, 1.574125429 >> > HenrikB> ## 83486, -0.816399069824751, 0.215940065840533, >> 1.20975177084379, >> > HenrikB> -0.340287874362 >> > HenrikB> ## 813, 0.117151537611550, ... >> > HenrikB> ## - attr(*, "dots")= list() >> > HenrikB> ## - attr(*, "class")= chr "warnings" >> > >> > HenrikB> Note also how long it takes to display and str() the warning. >> > >> > Yes, indeed. >> > It's a subtle problem and happens >> > because in do_log1arg() a new call is constructed in which 'x' >> > has already been evaluated. >> > >> > A subtle fix to the subtle problem >> > is to replace CAR(args) by CADR(call) in there >> > >> > --- arithmetic.c (Revision 44626) >> > +++ arithmetic.c (working copy) >> > @@ -1372,7 +1372,9 @@ >> > if(PRIMVAL(op) == 10) tmp = ScalarReal(10.0); >> > if(PRIMVAL(op) == 2) tmp = ScalarReal(2.0); >> > >> > - PROTECT(Call = lang3(install("log"), CAR(args), tmp)); >> > + /* CADR(call) instead of CAR(args), since 'args' have been >> > + * evaluated in Dispatch*(..) above : */ >> > + PROTECT(Call = lang3(install("log"), CADR(call), tmp)); >> > res = eval(Call, env); >> > UNPROTECT(1); >> > return res; >> > >> > ----- >> > >> > That does fix the problem you've reported (and passes "make check") >> > but I'm not quite at ease with it, since it will lead to >> > effectively evaluate the argument *twice*. >> > >> > A different approach that I'd find cleaner >> > would be to *not* construct and eval() a >> > new Call inside do_log1arg, but I assume there had been a good >> > reason for doing things they way they are now... >> >> There was (although possibly no longer -- there was a bug in S4 dispatch >> of primitives that failed to re-promise args). >> >> The real issue is somewhere else entirely, the complete deparse in >> print.warnings. >> > > Thank you both for looking into this. > > Henrik > > >> > >> > Martin Maechler, ETH Zurich >> > >> > ______________________________________________ >> > R-devel@r-project.org mailing list >> > https://stat.ethz.ch/mailman/listinfo/r-devel >> > >> >> -- >> Brian D. Ripley, [EMAIL PROTECTED] >> 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-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel