2017-12-14 5 views
0

Der Versuch, ein Diagramm mit dem folgenden Beispieldaten zu erstellen:Plotten Wochendaten mit Berechnungen

df:

ID  DAY STORE PRODid QTY GBP PROD 
2 8042899 1584 70470 1372  6 9.54 Yogurt 
3 8042899 1586 70470 1372  2 3.18 Yogurt 
4 8042899 1589 70470 1372  2 3.18 Yogurt 
5 8042899 1590 70470 307  3 3.27 Yogurt 
6 8042899 1590 70470 300  2 2.18 Yogurt 
7 8042899 1590 70470 1372  1 1.59 Yogurt 

ich in einen Fehler hier leite;

df[, .(total_sales = (sum(QTY) * (GBP))), by = DAY] 
ggplot(aes(x = total_sales)) + 
    geom_histogram(fill = 'steelblue', bins = 50) + 
    labs(x = 'Day unit sales', title = 'Titlte of plot') 

Ist das Problem mit der DAY Spalte ein ts Objekt nicht zu sein?

+0

Was ist der Fehler? –

+0

@PoGibas Gute Bemerkung: Ich würde sogar sagen, eine Zeitreihe Handlung, überhaupt nicht Histogramm oder Barplot (dachte die Bemerkung auf 'ts' Objekt) ... –

Antwort

1

Ich bin nicht sicher, was Sie eigentlich planen möchten, noch sagen Sie, was der Fehler ist, den Sie begegnen; Ich nehme an, dass Sie total_sales in Abhängigkeit von DAY plotten möchten. Wie von @PoGibas vorgeschlagen, können Sie das geom_bar mit tun:

df <- read.table(text = 
    " ID  DAY STORE PRODid QTY GBP PROD 
2 8042899 1584 70470 1372  6 9.54 Yogurt 
3 8042899 1586 70470 1372  2 3.18 Yogurt 
4 8042899 1589 70470 1372  2 3.18 Yogurt 
5 8042899 1590 70470 307  3 3.27 Yogurt 
6 8042899 1590 70470 300  2 2.18 Yogurt 
7 8042899 1590 70470 1372  1 1.59 Yogurt", header = T) 

require(data.table); 
require(margrittr); 
require(ggplot2); 

df <- as.data.table(df); 

df[, .(total_sales = (sum(QTY) * (GBP))), by = DAY] %>% 
    ggplot(aes(x = DAY, y = total_sales)) + 
    geom_bar(fill = 'steelblue', stat = "identity") + 
    labs(x = 'Day', title = 'Title of plot') 

enter image description here

+0

Danke, das hat perfekt funktioniert! eine letzte Frage; Ich versuche, die Pipefunktion anstelle von ";" aber wenn ich versuche, den Code zu ändern und die Funktion%>% zu verwenden, bekomme ich Fehler. – user113156

+1

@ user113156 Ich habe meine Antwort bearbeitet, um 'magritr's Pfeifenbediener zu verwenden; Bitte schau es dir an. –