带有R的data.frame中的加权价格

时间:2016-05-18 05:45:52

标签: r dplyr

我每周都有一个产品价格数据集。这个产品有很多品种,每个都有自己的价格。我有兴趣根据每个的销售量来计算加权价格。

我尝试使用循环,但不起作用。

有人可以帮助我吗?

这是我的数据集的最小示例:

任何

    nrow week variety        price volume
    1    10   Semiduro        911  15550
    2    10   Semiduro        809  13400
    3    10   Semiduro        611  15200
    4    10   Semiduro        517  17250
    5    10   Semiduro        389   4550
    6    10   Semiduro        300   1500
    7    10 Paisana(o)       1100  19200
    8    10 Paisana(o)        726  22900
    9    10 Paisana(o)        452  10450
    10   11   Semiduro       1362  13250
    11   11   Semiduro       1163   7100
    12   11   Semiduro       1032  15580
    13   11   Semiduro        768   9700
    14   11   Semiduro        703   3670
    15   11   Semiduro        550   1450
    16   11 Paisana(o)       1825  20200
    17   11 Paisana(o)       1402  30650
    18   11 Paisana(o)        838   9750
    19   12   Semiduro       1050  11350
    20   12   Semiduro        878   9200

1 个答案:

答案 0 :(得分:3)

我们可以使用dplyr

library(dplyr)
df1 %>%
   group_by(week, variety) %>% 
   summarise(wprice = weighted.mean(price, volume))
#   week    variety    wprice
#  <int>      <chr>     <dbl>
#1    10 Paisana(o)  808.1598
#2    10   Semiduro  673.5663
#3    11 Paisana(o) 1452.2574
#4    11   Semiduro 1048.4625
#5    12   Semiduro  972.9976