The weighted.mean() function replaces NA values with 0.0 when the user specifies na.rm=TRUE:
x <- c(101, 102, NA) mean(x, na.rm=TRUE) # 101.5, correct weighted.mean(x, na.rm=TRUE) # 67.66667, wrong weighted.mean(x, w=c(1,1,1), na.rm=TRUE) # 67.66667, wrong weighted.mean(x, w=c(1,1,1)/3, na.rm=TRUE) # 67.66667, wrong The weights are normalized w<-w/sum(w) before removing the NA values, effectively replacing x[is.na(x)]<-0. This bug was introduced between versions 2.9.2 and 2.10.0. Thanks, Arni ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel