Menu
Coddy logo textTech

Co kupić

Część sekcji Podstawy ścieżki R w Coddy. Lekcja 78 z 78.

challenge icon

Wyzwanie

Łatwy

Utwórz funkcję o nazwie what_to_buy, która przyjmuje dwa argumenty: budget (wartość numeryczną) i prices (wektor nazwany cenami produktów). Funkcja powinna zwracać wektor znakowy zawierający nazwy wszystkich produktów, których ceny są mniejsze lub równe budżetowi.

Jeśli nie stać Cię na żaden produkt, zwróć pusty wektor znakowy za pomocą character(0).

Otrzymasz następujące dane wejściowe:

  1. Kwotę budżetu (liczbę)
  2. Rozdzieloną przecinkami listę nazw produktów (np. apple,banana,steak,bread)
  3. Rozdzieloną przecinkami listę odpowiadających im cen (np. 2,1,15,3)

Przetwórz dane wejściowe, aby utworzyć wektor nazwany cenami, wywołaj swoją funkcję i wyświetl wynik. Użyj print(), aby wyświetlić zwrócony wektor znakowy.

Na przykład, jeśli dane wejściowe to:

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

Wynik powinien być następujący:

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

Jeśli dane wejściowe to:

10
laptop,phone,tablet
999,599,399

Wynik powinien być następujący:

character(0)

Podpowiedzi:

  • Użyj strsplit(input, ",")[[1]], aby podzielić ciągi rozdzielone przecinkami na wektory
  • Użyj as.numeric(), aby przekonwertować ciągi z cenami na liczby
  • Użyj names(prices) <- item_names, aby utworzyć wektor nazwany
  • Użyj indeksowania logicznego z names(), aby wyodrębnić nazwy produktów, na które Cię stać

Spróbuj swoich sił

# Odczytaj dane wejściowe
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)

# Przetwórz dane wejściowe
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])

# Utwórz wektor cen z nazwami
prices <- price_values
names(prices) <- item_names

# TODO: Napisz poniżej funkcję what_to_buy
# Funkcja powinna przyjmować budget i prices jako argumenty
# i zwracać wektor znakowy z nazwami produktów, na które wystarcza budżet


# Wywołaj funkcję i wyświetl wynik
result <- what_to_buy(budget, prices)
print(result)

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator R online