[Rd] NAs and weighted.mean
Martin Maechler
maechler at stat.math.ethz.ch
Thu Jun 24 10:18:32 CEST 2010
>>>>> "RobMcG" == McGehee, Robert <Robert.McGehee at geodecapital.com>
>>>>> on Wed, 23 Jun 2010 19:38:44 -0400 writes:
RobMcG> R-developers,
RobMcG> In version R 2.11.0, weighted.mean was changed such that:
>> weighted.mean(NA, na.rm=TRUE)
RobMcG> [1] 0
RobMcG> rather than NaN as in previous versions of R.
which versions?
Even in 2.10.0 it gave 0.
RobMcG> rather than NaN as in previous versions of R. I see a note in the NEWS
RobMcG> file indicates that weighted.mean was changed "so an infinite value with
RobMcG> zero weight does not force an NaN result."
RobMcG> In case the side effect of returning 0 rather than NaN in this case was
RobMcG> unintentional, I'd like to propose that this case be reverted such that
RobMcG> weighted.mean(NA, na.rm=TRUE) returns a NaN to be consistent with the
RobMcG> mean function.
I tend to agree with you.
Note that also, for such functions FUN
FUN(NA, na.rm=TRUE)
identical to
FUN( numeric(0) )
and for "mean-like" functions I agree it should return NaN (or NA, perhaps).
RobMcG> Otherwise perhaps a note should be added in the
RobMcG> documentation explaining this inconsistent
RobMcG> behavior.
RobMcG> I believe this patch should fix the problem while preserving the
RobMcG> behavior in the NEWS file:
RobMcG> - w <- w/sum(w)
RobMcG> - sum((x*w)[w != 0])
RobMcG> + sum((x*w)[w != 0])/sum(w)d
Yes, it seems so, and I will probably commit it, for R-devel
at first, and R-patched later after a while.
Martin Maechler, ETH Zurich
RobMcG> Here's the full note from the NEWS file.
RobMcG> o The default method of weighted.mean(x, w) coerces 'w' to be
RobMcG> numeric (aka double); previously only integer weights were
RobMcG> coerced. Zero weights are handled specially so an infinite
RobMcG> value with zero weight does not force an NaN result.
RobMcG> Thanks, Robert
............
More information about the R-devel
mailing list