a=c(1,2,NA,4)
b=c(10,NA,30,40)
weighted.mean(a,b,na.rm = T)
上面的代码给了我 不适用 作为答案,我认为 na.rm 只忽略 中的 NA 值向量 a 而不是 b .我怎么能忽略 不适用 在向量 b 或特定的权重中。我只是无法将 NA 更改为 0,我知道这可以解决问题,但要在公式本身中进行调整。
最佳答案
这是我最终编写来解决这个问题的函数:
weighted_mean <- function(x, w, ..., na.rm = FALSE){
if(na.rm){
df_omit <- na.omit(data.frame(x, w))
return(weighted.mean(df_omit$x, df_omit$w, ...))
}
weighted.mean(x, w, ...)
}
关于r - R 中使用 NA 权重的加权平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40269022/