>>>>> Allison Meisner 
>>>>>     on Thu, 7 May 2020 19:32:36 +0000 writes:

    > I believe there is an error in the summary.warnings function (typically 
called via 'summary(warnings())'). Below is a minimal working example:
    > #########

    > testfunction <- function(x){
    >  if(x > 30){
    >      warning("A big problem (should be 20 of these)")
    >  }else{
    >      warning("Bigger problem (should be 30 of these)")
    >  }
    > }

    > for(i in 1:50){
    >     testfunction(i)
    > }

    > summary(warnings())

    > #########

    > I checked the code for summary.warnings:

    > function (object, ...)
    > {
    > msgs <- names(object)
    > calls <- as.character(object)
    > ss <- ": "
    > c.m. <- paste(calls, msgs, sep = ss)
    > if (length(i.no.call <- which(calls == "NULL")))
    > c.m.[i.no.call] <- substr(c.m.[i.no.call], nchar(paste0("NULL",
    > ss)) + 1L, 100000L)
    > tm <- table(c.m., deparse.level = 0L)
    > structure(unique(object), counts = as.vector(tm), class = 
"summary.warnings")
    > }

    > The problem appears to be in the last line: unique preserves the order of 
the input, but counts reflects the counts in the table tm, which is a problem 
because table names are in alphabetical order.

    > Am I missing something?

No -- I think you are perfect and I was very imperfect ;-)  when
I created and tested the function ..

This will be fixed in the next versions of R.

Thank you very much for the report  and the nice concise
reproducible example!

Best regards,
Martin

    > Allison
    > ----------
    > Allison Meisner, PhD
    > Postdoctoral Fellow
    > Department of Biostatistics
    > Johns Hopkins Bloomberg School of Public Health
    > 615 N. Wolfe Street
    > Baltimore, MD 21205

Martin Maechler
ETH Zurich  and   R Core team

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to