繁体   English   中英

r中的分组加权平均值(最好是ddply,但无论如何)

grouped weighted mean in r (preferably with ddply but whatever works)

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个数据集,我想按组同时获取正常的“均值”和加权均值。 每个组都可以视为不同的投资组合或股票,价格是该投资组合或股票的价格,大小是股票,收益是百分比回报,因此市值就是价格*大小。

加权均值将是相对于各个组的市值的收益。 我运行下面的代码,它看起来显然是错误的,但是对于我一生来说,我无法弄清楚自己缺少什么:

mydf= structure(list(group = structure(c(1L, 2L, 1L, 2L, 1L), .Label = c("a","b"), class = "factor"), 
                     price = c(15, 20, 10, 40, 20), size = c(100, 10, 50, 50, 1000), 
                     gain = c(0.03, 0.02, 0.05, 0.1, 0.01), wt = c(1500, 200, 500, 2000, 20000)), 
                .Names = c("group", "price", "size", "gain", "wt"), row.names = c(NA, -5L), 
                class = "data.frame")
mydf
library(plyr)
ddply(x, .(group), summarise,normal_mean= mean(gain), 
      wt_mean= weighted.mean(x$price*x$size,x$gain))

在这里,我将价格和尺寸相乘,您也可以在weighted.mean函数中使用wt列,或者应该...

加权均值似乎不是在我的组中计算,而是在所有行中计算。 有什么帮助吗?

2 个回复

使用data.table的方法

library(data.table)

setDT(mydf)[,list(normalMean=mean(gain), 
             weightedMean=weighted.mean(gain, wt/sum(wt))), 
             by = group]

#   group normalMean weightedMean
#1:     a       0.03   0.01227273
#2:     b       0.06   0.09272727

dplyr的方法

mydf %>% group_by(group) %>%
summarise (mean=mean(gain), avgwt = weighted.mean(gain,wt))


  group mean      avgwt
1     a 0.03 0.01227273
2     b 0.06 0.09272727
1 R ddply和加权平均值

我试图在名为DFA_CMO的表上计算具有加权平均值(每个视图数的AverageViewingTime)的聚合。 DFA_CMO有5个维度,其中包含Site。 这是代码: 但结果是令人失望的,因为它显示了每个字段的相同值: 似乎所有东西的平均值都显示在这里,而每个站点应该是 ...

2013-06-20 16:42:01 1 746   r
2 在R中分组,ddply与weighted.mean

我试图在R中做一个“分组依据” - 样式加权平均值。有一些基本意思,下面的代码(使用来自Hadley的plyr包)运行良好。 如果我使用相同的方法加权。我得到以下错误“'x'和'w'必须具有相同的长度”,我不明白,因为weighted.mean部分在ddply之外工作。 我想过编 ...

3 ddply的加权平均值是错误的(R,ddply)

我需要在折叠R中的行时建立加权平均值。 数据 按品牌和名称折叠 结果:第一个加权平均值(fuelEconomySum)是正确的,但最后一个sizeSum是不正确的。 括号中的正确值。 我正在寻找一种同时创建多个加权平均值的解决方案。 谢谢 ...

2016-09-14 02:44:28 1 104   r
4 R中的weighted.mean命令很奇怪

假设我有这些向量: 我想基于像corvector这样的权重向量计算加权平均值 所以我用下面的命令 但是结果不等于如下所示的直接计算 如何正确使用weighted.mean? 您能解释一下此命令如何计算该值吗? ...

5 R与ddply的总和和平均值

我的数据框有两列用作分组键,17列需要在每个组中求和,而另一列应该是平均值。 让我在不同的数据框架上说明这一点,来自ggplot2 diamonds 。 我知道我可以这样做: 但是虽然对于3列是合理的,但对于其中的17列是不可接受的。 在研究这个时,我找到了colwise函 ...

2015-11-13 22:00:56 7 5180   r/ plyr
6 R加权算术平均值

假设我在R中有这个data.frame: 如果我做: 我得到每个Indiv(Group.1)的平均年龄(x): 但我想计算年龄的加权算术平均值(权重为W)。 如果我做: 我明白了: 我想我应该: 我究竟做错了什么? 提前致谢! ...

7 加权平均 R

我想知道如何获得数据的加权平均值。 我已经在互联网上看过,但是当我尝试 weighted.mean 函数时,我一直得到相同的结果,所以我想知道我做错了什么。 下面是数据集的一些信息: 如您所见,我有 3 个组件(comp.1、comp.2、comp.3)。 所有这些组件都有其后验概率。 我想知 ...

8 编码加权平均值(R)

我在一段代码上遇到麻烦。 我想执行加权均值,但是如果我自己计算加权均值,我得到的值不是我获得的值。 这是我编码加权均值的方式: 变量为“ dataset $ A”,我用于加权均值的行列在“行”中(有2行)。 权重在“权重”中列出。 这是我自己计算的方式: 为什么这 ...

9 R中的聚合和加权平均值

我正在尝试按资产类别计算资产加权回报。 对于我的生活,我无法弄清楚如何使用聚合命令来做到这一点。 我的数据框看起来像这样 我正在尝试做类似的事情(不要复制这个,这是错误的): ...

10 R中具有加权平均值的aggregate()

我有一个像这样的数据集: 我想获得每个汽车品牌出售的总nb。 所以我这样做: 然后,我想获得每个汽车品牌的平均二氧化碳排放量。 最后我将x和y合并 所以我明白了 问题:在数据集中,每个项目售出的汽车nb可能不同。 因此,有时候,对于一个模型,我售出了3 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM