R中不同列的加权平均数

R中不同列的加权平均数,r,weighted-average,R,Weighted Average,我想计算数据帧中不同列的加权平均值 这是我的数据: 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 &l

我想计算数据帧中不同列的加权平均值 这是我的数据:

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)

我创建一个变量,每个权重值乘以我的列,然后除以,但这需要很多时间。在这种情况下,有没有更干净的方法来计算加权平均数?

分段计算,您可以使用


Xs分段,您可以使用

Xs试试这个:

库(tidyverse)
单位权重为%
单独(var,c(“var”,“编号”))
df2%>%
分组人(名称x,变量)%>%
总结(总和(权重*值)/36)
为了更清晰,我更愿意将这两个步骤分开,但它们也可以用管道连接

#一个tible:8 x 3
#分组:名称_x[4]
name_x var`sum(权重*值)/36`
1 a 2.17
2a2.36
3 b a 3.89
4bx6.83
5 c a 5.5
6cx4.89
7 d a 5.81
8dx3.78
试试这个:

库(tidyverse)
单位权重为%
单独(var,c(“var”,“编号”))
df2%>%
分组人(名称x,变量)%>%
总结(总和(权重*值)/36)
为了更清晰,我更愿意将这两个步骤分开,但它们也可以用管道连接

#一个tible:8 x 3
#分组:名称_x[4]
name_x var`sum(权重*值)/36`
1 a 2.17
2a2.36
3 b a 3.89
4bx6.83
5 c a 5.5
6cx4.89
7 d a 5.81
8dx3.78

如果我有一系列不同名称的列,如何使用第二个答案?如果我的列是weight4、height4、size4、weight8、height8、size8、weight12、height12、size12,依此类推。如何使用第二个答案而不手动使用其中的每一个。如果我有一系列具有不同名称的列,如何使用第二个答案?如果我的列是weight4、height4、size4、weight8、height8、size8、weight12、height12、size12,依此类推。如何使用第二个答案而不手动使用其中的每一个答案。
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