Was kaufen
Teil des Abschnitts Grundlagen der R-Journey von Coddy. Lektion 78 von 78.
Aufgabe
EinfachErstelle eine Funktion namens what_to_buy, die zwei Argumente übernimmt: budget (einen numerischen Wert) und prices (einen benannten Vektor mit den Artikelpreisen). Die Funktion soll einen Zeichenvektor zurückgeben, der die Namen aller Artikel mit Preisen enthält, die kleiner oder gleich dem Budget sind.
Wenn keine Artikel erschwinglich sind, gib einen leeren Zeichenvektor mit character(0) zurück.
Du erhältst die folgenden Eingaben:
- Den Budgetbetrag (eine Zahl)
- Eine durch Kommas getrennte Liste von Artikelnamen (z. B.
apple,banana,steak,bread) - Eine durch Kommas getrennte Liste der entsprechenden Preise (z. B.
2,1,15,3)
Verarbeite die Eingaben, um einen benannten Preisvektor zu erstellen, rufe deine Funktion auf und gib das Ergebnis aus. Verwende print(), um den zurückgegebenen Zeichenvektor anzuzeigen.
Wenn die Eingabe beispielsweise lautet:
5
apple,banana,steak,bread
2,1,15,3Die Ausgabe sollte lauten:
[1] "apple" "banana" "bread"Wenn die Eingabe lautet:
10
laptop,phone,tablet
999,599,399Die Ausgabe sollte lauten:
character(0)Hinweise:
- Verwende
strsplit(input, ",")[[1]], um durch Kommas getrennte Zeichenfolgen in Vektoren aufzuteilen. - Verwende
as.numeric(), um die Preiszeichenfolgen in Zahlen umzuwandeln. - Verwende
names(prices) <- item_names, um einen benannten Vektor zu erstellen. - Verwende logische Indizierung mit
names(), um die Namen erschwinglicher Artikel zu extrahieren.
Probier es selbst
# Eingabe lesen
con <- file("stdin", "r")
budget <- as.numeric(suppressWarnings(readLines(con, n = 1)))
item_names_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# Eingaben parsen
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])
# Erstelle einen benannten Vektor der Preise
prices <- price_values
names(prices) <- item_names
# TODO: Schreibe deine Funktion what_to_buy unten
# Die Funktion sollte budget und prices als Argumente entgegennehmen
# und einen Zeichenvektor der erschwinglichen Artikelnamen zurückgeben
# Funktion aufrufen und das Ergebnis ausgeben
result <- what_to_buy(budget, prices)
print(result)Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren (AND, OR)Logische Operatoren Teil 2 (NOT)Wiederholung – einfache LogikVektorisierte Logik Teil 1Vektorisierte Logik Teil 27Rechner zum Teilen der Rechnung
BegrüßungsnachrichtBenutzereingaben erfassen10FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion13Fortgeschrittene Vektoren
Vektor-Slicing und -IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahliger DatentypZeichen-DatentypLogischer DatentypDatentypen überprüfenNamenskonventionenFehlende Werte: NAZusammenfassung – Variablen erstellen5Entscheidungen treffen
If-AnweisungIf - ElseWiederholung – Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Wiederholung – FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenWiederholung – Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahldivision und ModuloZuweisungsoperatorenRückblick – Einfache MathematikVergleichsoperatoren6Grundlegende Ein- und Ausgabe
Ausgabe mit printcat zur AusgabeAusgabe mit VariablenEingaben mit readline() lesenGrundlagen der TypkonvertierungRückblick – AltersrechnerRückblick – Wahr oder falsch9Funktionen
Eine Funktion deklarierenFunktionsargumenteRückgabewerteWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardparameterwerteÜbe selbstständig: Online-R-Compiler