【发布时间】:2021-01-24 15:06:17
【问题描述】:
我想计算数据框中不同列的加权平均值 这是我的数据:
x.4 <- c(2,3,4,5)
a.4 <- c(2,3,4,5)
x.8 <- c(3,24,2,2)
a.8 <- c(2,3,4,7)
x.12 <- c(3,2,4,5)
a.12 <- c(3,2,4,5)
x.24 <- c(2,4,5,2)
a.24 <- c(2,4,5,2)
x.36 <- c(2,1,3,6)
a.36 <- c(2,4,5,2)
x.50 <- c(2,3,5,2)
a.50 <- c(2,3,5,20)
x.100 <- c(2,3,4,5)
a.100 <- c(2,3,4,5)
x.10000 <- c(2,3,46,2)
a.10000 <- c(2,32,46,2)
name_x <- c("a", "b", "c", "d")
df <- data.frame(name_x, x.4,a.4, x.8, a.8, x.12,a.12,x.24,a.24,x.36,a.36,x.50, a.50,x.100,a.100,x.10000, a.10000)
我想要的是创建一个包含加权平均值的“x”和“a”变量,对于以 4 结尾的那些使用 8,对于以 8 结束的那些使用 7,对于以 12 结束的那些使用 6,依此类推.
x = (x.4 * 8 + x.8 * 7 + x.12 * 6 + x.24 * 5 .......x.10000 * 1)/36
a = (a.4 * 8 + a.8 * 7 + a.12 * 6 + a.24 * 5 .......a.10000 * 1)/36
我创建了一个变量,每个权重值乘以我的列,然后除以,但这需要很多时间。在这种情况下是否有更简洁的方法来计算加权平均值?
【问题讨论】:
标签: r weighted-average