I data.frame
haben, die wie folgt aussieht:ddply Transformation (Veränderung in Prozent) in R
Brand Year EUR
Brand1 2015 10
Brand1 2016 20
Brand2 2015 100
Brand2 2016 500
Brand3 2015 25
Brand4 2015 455
...
Auch lege ich den Code unten:
library(plyr)
library(dplyr)
library(scales)
set.seed(1992)
n=68
Year <- sample(c("2015", "2016"), n, replace = TRUE, prob = NULL)
Brand <- sample("Brand", n, replace = TRUE, prob = NULL)
Brand <- paste0(Brand, sample(1:5, n, replace = TRUE, prob = NULL))
EUR <- abs(rnorm(n))*100000
df <- data.frame(Year, Brand, EUR)
ich einige zusätzliche Datentransformationen benötigen (fügen Sie mehr Spalten) für meine zukünftige Forschung.
Zunächst berechne ich Positionen für Etiketten (für meine Zukunft Grafik) und nenne es pos
:
df.summary = df %>% group_by(Brand, Year) %>%
summarise(EUR = sum(EUR)) %>% #
mutate(pos = cumsum(EUR)-0.5*EUR)
Was will ich zu tun ist, für jeden Brand
in Bezug auf Year
berechnen percentage grow
. Also füge ich diese Zeile hinzu:
Aber was ich bekomme, ist konstante Größe - Wachstum aller meiner Datenrahmen.
Könnten Sie mir bitte helfen, prozentuale Änderungen für jede Marke zu berechnen?
Danke!
Können Sie einige erwartete Ausgabe zur Verfügung stellen? (Tatsächliche Werte des Wachstums.) Es hilft zu überprüfen, ob wir den richtigen Weg berechnen. – r2evans
Wahrscheinlich sind Ihre Probleme durch das Mischen von 'dplyr' und' plyr' entstanden. Hast du vielleicht 'plyr' nach' dplyr' geladen und ignorierst die Warnungen, die dir sagen, dass du das nicht tust? Es wird dazu führen, dass 'plyr'-Funktionen ihre' dplyr'-Versionen maskieren und zu Fehlern führen. Warum nicht einfach 'dplyr' verwenden? – Gregor
Zum Beispiel: Marke Jahr EUR Marke1 2015 500 Marke1 2016 1500 So ist mein Ziel, das Ergebnis zu erhalten: ((1500/500) -1) * 100% = 200% So bedeutet es, dass Marke1 gestiegen sein Geldbetrag im Jahr 2016 um 200% im Vergleich zu 2015 – AK47