Menu
Coddy logo textTech

Was zu kaufen ist

Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 78 von 78.

challenge icon

Aufgabe

Einfach

Erstellen Sie eine Funktion namens what_to_buy, die zwei Argumente entgegennimmt: budget (ein numerischer Wert) und prices (ein benannter Vektor von Artikelpreisen). Die Funktion sollte einen Character-Vektor zurückgeben, der die Namen aller Artikel enthält, deren Preise kleiner oder gleich dem Budget sind.

Wenn keine Artikel erschwinglich sind, geben Sie einen leeren Character-Vektor mit character(0) zurück.

Sie erhalten die folgenden Eingaben:

  1. Der Budgetbetrag (eine Zahl)
  2. Eine durch Kommas getrennte Liste von Artikelnamen (z. B. apple,banana,steak,bread)
  3. Eine durch Kommas getrennte Liste der entsprechenden Preise (z. B. 2,1,15,3)

Verarbeiten Sie die Eingaben, um einen benannten Vektor von Preisen zu erstellen, rufen Sie Ihre Funktion auf und geben Sie das Ergebnis aus. Verwenden Sie print(), um den zurückgegebenen Character-Vektor anzuzeigen.

Wenn die Eingabe zum Beispiel wie folgt aussieht:

5
apple,banana,steak,bread
2,1,15,3

Sollte die Ausgabe wie folgt lauten:

[1] "apple"  "banana" "bread"

Wenn die Eingabe wie folgt aussieht:

10
laptop,phone,tablet
999,599,399

Sollte die Ausgabe wie folgt lauten:

character(0)

Hinweise:

  • Verwenden Sie strsplit(input, ",")[[1]], um durch Kommas getrennte Zeichenfolgen in Vektoren aufzuteilen
  • Verwenden Sie as.numeric(), um die Preis-Zeichenfolgen in Zahlen umzuwandeln
  • Verwenden Sie names(prices) <- item_names, um einen benannten Vektor zu erstellen
  • Verwenden Sie logische Indizierung mit names(), um die Namen der erschwinglichen 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