【发布时间】:2019-11-18 22:26:22
【问题描述】:
考虑以下数据集,包括 NAs
df <- data.frame(x1=c(3, 6, 9, NA),
w1=c(0.25, 1, 0.90, 0),
x2=c(2, NA, 4, 8),
w2=c(0.75, 0, 0.10, 1))
我想用dplyr、mutate 和weighted.mean 计算一个新列为weighted_sum=x1.w1 + x2.w2,但我不知道如何设置变量和权重,我在其他下找不到确切的这个问题问题。结果应如下所示,不应将 NA 视为总和。
x1 w1 x2 w2 weighted_sum
3 0.25 2 0.75 2.25
6 1.00 NA 0.00 6.00
9 0.90 4 0.10 8.50
NA 0.00 8 1.00 8.00
感谢您的帮助!
【问题讨论】:
-
也可以
df %>% mutate(weighted_sum = rowSums(cbind(x1*w1, x2*w2), na.rm = TRUE))