r - R 中使用 NA 权重的加权平均值

标签 r mean na

 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/

相关文章:

c++ - 使用 Boost 从 C++ 中的样本 vector 计算平均值和标准差

node.js - 错误 : uncaughtException: require(. ..).invokeRolesPolicies 不是函数

r - 使用 mean_cl_boot 获取 stat_summary 计算的值

r - 如何将 NAs 放在 dplyr 中进行排序?

r - 对多个测试的观察结果进行分组

r - 根据向量 R 选择列子集

r - 如何保存中间对象?

arrays - 合并数组 `x` 和 `y` ,对应于 `x` 的相等元素

r - 通过其他日期列中的信息填充缺失的变量 (R)

r - R 中使用 NA 进行条件转置