# Sparquote berechnen
einkaeufe <- einkaeufe %>%
mutate(Sparquote = round((Ersparnis / (Brutto + Ersparnis)) * 100, 2))
# Jetzt funktioniert datatable(), da einkaeufe existiert
datatable(einkaeufe, options = list(pageLength = 10)) %>%
formatRound(c('Brutto', 'Ersparnis', 'Sparquote'), 2)
p <- ggplot(einkaeufe, aes(x = Datum, y = Brutto, text = paste("Beleg Nr:", Nr, "<br>Sparquote:", Sparquote, "%"))) +
geom_line(color = "#0050aa", size = 0.5) +
geom_point(aes(size = Ersparnis), color = "#ffcc00") +
theme_minimal() +
labs(title = "Einkaufssummen & Sparerfolge", y = "Euro", x = "")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
ggplotly(p, tooltip = "text")
ggplot(einkaeufe, aes(x = reorder(as.character(Nr), Sparquote), y = Sparquote)) +
geom_bar(stat = "identity", fill = "#00b140") +
coord_flip() +
theme_minimal() +
labs(title = "Sparquote pro Beleg (%)", x = "Beleg Nummer", y = "Prozent gespart")
ggplot(einkaeufe, aes(x = Datum, y = Brutto)) +
geom_line(color = "#0050aa", size = 1) +
geom_point(aes(size = Ersparnis), color = "#ffcc00") +
theme_minimal() +
labs(title = "Ausgaben-Verlauf bei Lidl",
subtitle = "Punktgröße repräsentiert die Ersparnis durch Lidl Plus",
y = "Summe (EUR)", x = "Monat")
einkaeufe <- einkaeufe %>% mutate(Sparquote = (Ersparnis / (Brutto + Ersparnis)) * 100)
ggplot(einkaeufe, aes(x = Nr, y = Sparquote)) +
geom_bar(stat = "identity", fill = "#00b140") +
coord_flip() +
theme_minimal() +
labs(title = "Sparquote pro Beleg (%)", x = "Beleg Nummer", y = "Prozent gespart")
library(plotly)
p <- ggplot(einkaeufe, aes(x = Datum, y = Brutto, text = paste("Beleg Nr:", Nr))) +
geom_line(color = "#0050aa") +
geom_point(aes(size = Ersparnis), color = "#ffcc00") +
theme_minimal()
ggplotly(p) # Macht die Grafik interaktiv!
Einige Produkte weisen aufgrund von Saisonalität oder Aktionen starke Schwankungen auf.
# Wir nehmen an, du hast eine Spalte 'Retter' in der CSV (0 oder 1)
# Falls nicht vorhanden, erstellen wir hier eine Demo-Zählung basierend auf deinen Daten
# (In deiner CSV kannst du eine Spalte 'Retter' hinzufügen)
if(!"Retter" %in% colnames(einkaeufe)) {
einkaeufe$Retter <- sample(c(0, 1), nrow(einkaeufe), replace = TRUE) # Platzhalter
}
retter_stats <- einkaeufe %>% summarize(Anzahl = sum(Retter), Ersparnis_geschätzt = sum(Retter) * 9)
datatable(einkaeufe, options = list(pageLength = 10))
if (!"Retter" %in% colnames(einkaeufe)) {
einkaeufe$Retter <- sample(c(0, 1), nrow(einkaeufe), replace = TRUE)
}
retter_stats <- einkaeufe %>%
summarize(
Anzahl = sum(Retter),
Ersparnis_geschaetzt = sum(Retter) * 9
)
retter_stats
## Anzahl Ersparnis_geschaetzt
## 1 11 99
# Sparquote berechnen
einkaeufe <- einkaeufe %>%
mutate(Sparquote = round((Ersparnis / (Brutto + Ersparnis)) * 100, 2))
# Jetzt funktioniert datatable(), da einkaeufe existiert
datatable(einkaeufe, options = list(pageLength = 10)) %>%
formatRound(c('Brutto', 'Ersparnis', 'Sparquote'), 2)