# [R] density with weights missing values

Matthias Gondan m@tth|@@-gond@n @end|ng |rom gmx@de
Mon Jul 12 15:09:38 CEST 2021

```Weighted mean behaves differently:
• weight is excluded for missing x
• no warning for sum(weights) != 1

> weighted.mean(c(1, 2, 3, 4), weights=c(1, 1, 1, 1))
[1] 2.5
> weighted.mean(c(1, 2, 3, NA), weights=c(1, 1, 1, 1))
[1] NA
> weighted.mean(c(1, 2, 3, NA), weights=c(1, 1, 1, 1), na.rm=TRUE)
[1] 2

Von: Richard O'Keefe
Gesendet: Montag, 12. Juli 2021 13:18
An: Matthias Gondan
Betreff: Re: [R] density with weights missing values

Does your copy of R say that the weights must add up to 1?
?density doesn't say that in mine.   But it does check.

On Mon, 12 Jul 2021 at 22:42, Matthias Gondan <matthias-gondan using gmx.de> wrote:
>
> Dear R users,
>
> This works as expected:
>
> • plot(density(c(1,2, 3, 4, 5, NA), na.rm=TRUE))
>
> This raises an error
>
> • plot(density(c(1,2, 3, 4, 5, NA), na.rm=TRUE, weights=c(1, 1, 1, 1, 1, 1)))
> • plot(density(c(1,2, 3, 4, 5, NA), na.rm=TRUE, weights=c(1, 1, 1, 1, 1, NA)))
>
> This seems to work (it triggers a warning that the weights don’t add up to 1, which makes sense*):
>
> • plot(density(c(1,2, 3, 4, 5, NA), na.rm=TRUE, weights=c(1, 1, 1, 1, 1)))
>
> Questions
>
> • But shouldn’t the na.rm filter also filter the corresponding weights?
> • Extra question: In case the na.rm filter is changed to filter the weights, the check for sum(weights) == 1 might trigger false positive warnings since the weights might not add up to 1 anymore
>
> Best wishes,
>
> Matthias
>
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help