2016-05-18 19 views
1

Ich habe einen wöchentlichen Datensatz der Preise eines Produkts. Dieses Produkt hat viele Sorten, jede mit ihrem eigenen Preis. Ich bin daran interessiert, einen gewichteten Preis zu berechnen, der von dem jeweiligen Verkaufsvolumen abhängt.gewichteter Preis in einem data.frame mit R

Ich habe versucht, mit einer Schleife zu tun, funktioniert aber nicht.

Kann mir jemand helfen?

Hier ein minimales Beispiel meines Datensatzes:

Alle

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 

Antwort

3

Wir verwenden könnte 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 
Verwandte Themen