【发布时间】:2020-06-26 07:49:10
【问题描述】:
我想在 R 中执行以下操作 -
- 计算列的方差
- 计算每一列的权重:variance[i]/sum(variances)
- 计算加权和
数据框(例如)将是
structure(list(Date = structure(c(18436, 18437, 18438, 18439), class = "Date"),
`BIB_Level 1` = c(261, 278, 113, 187), `BIB_Level 2` = c(230,
141, 280, 132), `BIB_Level 3` = c(242, 176, 149, 274)), .Names = c("Date",
"BIB_Level 1", "BIB_Level 2", "BIB_Level 3"), row.names = c(NA,
-4L), class = "data.frame")
示例:示例中各列的方差为
> sapply(wideDf[,-1],FUN = var,na.rm=T)
BIB_Level 1 BIB_Level 2 BIB_Level 3
5720.917 5110.917 3332.250
权重是:
> sapply(wideDf[,-1],FUN = var,na.rm=T)/sum(sapply(wideDf[,-1],FUN = var,na.rm=T))
BIB_Level 1 BIB_Level 2 BIB_Level 3
0.4039031 0.3608364 0.2352605
第一行的加权总和为
> (261*0.4039031)+(230*0.3608364)+(242*0.2352605)
[1] 245.3441
我需要一个附加到数据框的加权和列。
我怎样才能把它写成一段代码?
谢谢
【问题讨论】:
标签: r sumproduct