Dear R team I noticed a bug in the "medpolish" function in the "stats" package. When I run medpolish(x), with "x" the matrix in the attached .rda file, I get this rather cryptic error: "Error in if (converged) break : missing value where TRUE/FALSE needed In addition: Warning message: In sum(abs(z), na.rm = na.rm) : integer overflow - use sum(as.numeric(.))" I traced this down to the line: newsum <- sum(abs(z), na.rm = na.rm) I think this "overflow" could be easily fixed by changing this line to: newsum <- sum(as.numeric(abs(z)), na.rm = na.rm) With kind regards Ludger Goeminne ? Ludger Goeminne - Ph.D. Student VIB-UGent Center for Medical Biotechnology Albert Baertsoenkaai 3 - 9000 Gent - Belgium Tel: +32 (0)9 264 9360 mbc.vib-ugent.be -------------- next part -------------- A non-text attachment was scrubbed... Name: matrix.rda Type: application/x-gzip Size: 2071 bytes Desc: not available URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20180119/3257a421/attachment.bin>
On 19/01/2018 9:33 AM, Ludger Goeminne wrote:> Dear R team > > I noticed a bug in the "medpolish" function in the "stats" package. > When I run medpolish(x), with "x" the matrix in the attached .rda file, > I get this rather cryptic error: > > "Error in if (converged) break : missing value where TRUE/FALSE needed > In addition: Warning message: > In sum(abs(z), na.rm = na.rm) : integer overflow - use sum(as.numeric(.))" > > I traced this down to the line: > > newsum <- sum(abs(z), na.rm = na.rm) > > I think this "overflow" could be easily fixed by changing this line to: > > newsum <- sum(as.numeric(abs(z)), na.rm = na.rm)Alternatively, you could use medpolish(as.numeric(x)). Duncan Murdoch