Übung: Der Wocheneinkauf
Ein Kassenbon als Vektoren: Du rechnest die Summe aus, zählst teure Artikel und gehst mit einem Preis um, der auf dem Bon fehlt.
Vorher ansehen: Fehlende Werte
Was du lernst
In dieser Übung wertest du einen Kassenbon mit Vektoren aus, auf dem ein Preis fehlt, und kannst danach:
- Preise und Mengen als Vektoren Stelle für Stelle multiplizieren und mit
sum()aufsummieren - einen fehlenden Preis mit
na.rm = TRUEausdrücklich aus Summe und Zählung herausnehmen - mit
sum()über einen Vergleich zählen, wie viele Artikel mehr als einen bestimmten Preis kosten - mit
%in%und eckigen Klammern Artikel auswählen und ihren Anteil am bekannten Gesamtbetrag berechnen - beurteilen, welche Antworten sich ändern, sobald der fehlende Preis bekannt ist
Als Skript herunterladen
r-exercise-shopping.R mit der Aufgabe als Kommentar, zum Ausführen in VS Code oder Positron
Aufgabe
Auf einem Kassenbon stehen sechs Artikel. Für jeden kennst du den Preis je Stück und die Menge, nur beim Käse ist der Preis unleserlich:
| Artikel | Preis je Stück | Menge |
|---|---|---|
| Milch | 1,09 | 3 |
| Haferdrink | 1,79 | 2 |
| Brot | 2,49 | 1 |
| Käse | unleserlich | 1 |
| Äpfel | 0,45 | 6 |
| Schokolade | 1,29 | 2 |
Beantworte mit R drei Fragen, jede in einem eigenen Kasten:
- Was kostet der Einkauf ohne den Käse?
- Wie viele Artikel kosten je Stück mehr als 1,50 Euro?
- Welchen Anteil am bekannten Gesamtbetrag machen Milch und Haferdrink zusammen aus?
Dein Code
items <- c("Milch", "Haferdrink", "Brot", "Käse", "Äpfel", "Schokolade")
prices <- c(1.09, 1.79, 2.49, NA, 0.45, 1.29)
amounts <- c(3, 2, 1, 1, 6, 2)
# 1. Summe ohne den Käseitems <- c("Milch", "Haferdrink", "Brot", "Käse", "Äpfel", "Schokolade")
prices <- c(1.09, 1.79, 2.49, NA, 0.45, 1.29)
amounts <- c(3, 2, 1, 1, 6, 2)
# 2. Artikel über 1,50 Euroitems <- c("Milch", "Haferdrink", "Brot", "Käse", "Äpfel", "Schokolade")
prices <- c(1.09, 1.79, 2.49, NA, 0.45, 1.29)
amounts <- c(3, 2, 1, 1, 6, 2)
# 3. Anteil von Milch und HaferdrinkTIPP 1 ANZEIGEN
prices * amounts gibt den Betrag je Zeile des Bons. Beim Käse steht dort
NA, deshalb braucht sum() ein bestimmtes Argument. Zur Kontrolle: Der
bekannte Betrag ist 14,62 Euro.
TIPP 2 ANZEIGEN
Für die zweite Frage zählst du einen Vergleich mit sum(). Der fehlende
Preis des Käses ist auch hier im Weg. Für die dritte wählst du mit %in%
die beiden Getränke aus und teilst ihren Betrag durch den bekannten
Gesamtbetrag.
LÖSUNG ANZEIGEN
items <- c("Milch", "Haferdrink", "Brot", "Käse", "Äpfel", "Schokolade")
prices <- c(1.09, 1.79, 2.49, NA, 0.45, 1.29)
amounts <- c(3, 2, 1, 1, 6, 2)
sum(prices * amounts, na.rm = TRUE)prices <- c(1.09, 1.79, 2.49, NA, 0.45, 1.29)
sum(prices > 1.50, na.rm = TRUE)items <- c("Milch", "Haferdrink", "Brot", "Käse", "Äpfel", "Schokolade")
prices <- c(1.09, 1.79, 2.49, NA, 0.45, 1.29)
amounts <- c(3, 2, 1, 1, 6, 2)
totals <- prices * amounts
drinks <- items %in% c("Milch", "Haferdrink")
sum(totals[drinks]) / sum(totals, na.rm = TRUE)Der Einkauf kostet ohne den Käse 14,62 Euro. Zwei Artikel kosten mehr als
1,50 Euro, der Haferdrink und das Brot; ob der Käse dazugehört, weiß
niemand. Milch und Haferdrink machen knapp 47 Prozent des bekannten Betrags
aus. In der letzten Zeile braucht nur der Nenner na.rm, denn unter den
beiden Getränken fehlt kein Preis.
Für Schnelle
Der Käse hat 3,99 Euro gekostet. Setze den Preis ein: Welche deiner Antworten ändern sich, und welche Zeilen deines Codes musst du dafür anfassen?
Details
- Niveau
- Einstieg
- Module
- Empirisches Arbeiten
- In Lernpfaden
- Einstieg in R
- Code
8563- Stand
- 1. November 2026
- Status
- veröffentlicht