[R] zero weights in weighted.mean
Göran Broström
gor@n@bro@trom @end|ng |rom umu@@e
Wed Jul 14 20:26:08 CEST 2021
On 2021-07-14 19:43, Sorkin, John wrote:
> Gentlemen,
>
> At the risk of beating a dead horse, but in he spirit of learning
> more about R, aren't the two expressions functionally the same? One
> drops values where weight is zero. The other (in the case where we
> and infinity * 0, something one would not expect to see in data) also
> drops data as in R infinity * 0 = Nan. In either case the observation
> would be dropped. I am certain I am missing something, but I don't
> know what I am missing.
Try this:
> my <- function(x, w) sum(x * w) / sum(w)
> x <- c(1, 1 / 0)
> w <- 1:0
> my(x, w)
[1] NaN
> weighted.mean(x, w)
[1] 1
See?
Best, Göran
>
> John
>
> John David Sorkin M.D., Ph.D. Professor of Medicine University of
> Maryland School of Medicine Associate Director for Biostatistics and
> Informatics Baltimore VA Medical Center Geriatrics, Research,
> Education, and Clinical Center Chief, Biostatistics and Informatics
> University of Maryland School of Medicine Division of Gerontology,
> Geriatrics and Palliative Care Senior Statistician University of
> Maryland Center for Vascular Research 10 North Greene Street GRECC
> (BT/18/GR) Baltimore, MD 21201-1524 (Phone) 410-605-7119 (Fax)
> 410-605-7913 (Please call phone number above prior to faxing)
>
>
>
> ________________________________________ From: R-help
> <r-help-bounces using r-project.org> on behalf of Göran Broström
> <goran.brostrom using umu.se> Sent: Wednesday, July 14, 2021 10:46 AM To:
> Duncan Murdoch; r-help using r-project.org Subject: Re: [R] zero weights in
> weighted.mean
>
>
>
> Den 2021-07-14 kl. 13:16, skrev Duncan Murdoch:
>> On 14/07/2021 6:00 a.m., Göran Broström wrote:
>>> I wonder about the last sentence in the Details section of the
>>> documentation of 'weighted.mean':
>>>
>>> "However, zero weights _are_ handled specially and the
>>> corresponding ‘x’ values are omitted from the sum."
>>>
>>> The return value of weighted.mean.default is
>>>
>>> sum((x * w)[w != 0])/sum(w)
>>>
>>> and indeed, it looks as if zero weights are getting special
>>> treatment, but what is wrong with the alternative (equivalent?)
>>> expression
>>>
>>> sum(x * w) / sum(w)?
>>>
>>> Is it a good idea to remove zeros from a vector before applying
>>> 'sum' to it? I don't think so. Anyway, the sentence in the
>>> documentation seems to be uncalled for.
>>
>> Inf*0 is not zero. Setting weights to zero on infinite
>> observations (or NA, or NaN) will give different results in your
>> two expressions.
>
> Thanks, agreed.
>
> G,
>
> ______________________________________________ R-help using r-project.org
> mailing list -- To UNSUBSCRIBE and more, see
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help&data=04%7C01%7CJSorkin%40som.umaryland.edu%7C3a3546f3bb4541fdc30808d946d6482b%7C717009a620de461a88940312a395cac9%7C0%7C0%7C637618709012695753%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=OE%2B97ntdhOx2x19hUx0wUFg9d%2BhMrsN8v5G%2BFHv69tA%3D&reserved=0
>
>
PLEASE do read the posting guide
https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.r-project.org%2Fposting-guide.html&data=04%7C01%7CJSorkin%40som.umaryland.edu%7C3a3546f3bb4541fdc30808d946d6482b%7C717009a620de461a88940312a395cac9%7C0%7C0%7C637618709012695753%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=A0GsBl75Pq3MpWmncmtBz31z%2FJybPNWKWx8sgCbhKJ4%3D&reserved=0
> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list