Menu
Coddy logo textTech

Wektory nazwane

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

Do tej pory uzyskiwałeś dostęp do elementów wektora za pomocą pozycji liczbowych. A co, gdyby można było uzyskiwać do nich dostęp za pomocą znaczących nazw? Wektory nazwane pozwalają przypisać etykiety do każdego elementu, dzięki czemu kod staje się bardziej czytelny i samodokumentujący się.

Możesz utworzyć nazwaną tablicę, podając nazwy podczas jej tworzenia:

ages <- c(alice = 25, bob = 30, charlie = 28)
print(ages)

Wynik:

  alice     bob charlie 
     25      30      28

Aby uzyskać dostęp do elementów według nazwy, użyj nazwy jako ciągu znaków w nawiasach kwadratowych:

print(ages["bob"])

Wynik:

bob 
 30

Możesz również dodać nazwy do istniejącego wektora za pomocą funkcji names():

scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
print(scores["math"])

Wynik:

math 
  85

Wektory nazwane są szczególnie przydatne podczas pracy z danymi, które mają naturalne etykiety, na przykład przy przechowywaniu ocen uczniów według przedmiotu lub cen według nazwy produktu.

challenge icon

Wyzwanie

Łatwy

Otrzymasz dwa wiersze danych wejściowych:

  1. Rozdzieloną przecinkami listę nazw produktów (np. laptop,phone,tablet,headphones)
  2. Rozdzieloną przecinkami listę odpowiadających im cen (np. 999,699,449,199)

Wykonaj następujące operacje:

  1. Utwórz wektor numeryczny z cen
  2. Przypisz nazwy produktów do wektora za pomocą funkcji names()
  3. Wypisz cały nazwany wektor
  4. Wypisz cenę drugiego produktu, odwołując się do niego za pomocą jego nazwy
  5. Wypisz cenę ostatniego produktu, odwołując się do niego za pomocą jego nazwy

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

apple,banana,orange,grape
2,1,3,4

Wynik powinien być następujący:

apple banana orange  grape 
    2      1      3      4 
banana 
     1 
grape 
    4

Uwaga: odwołuj się do drugiego i ostatniego elementu, używając nazwy jako indeksu (ciągu znaków, na przykład prices["banana"]), a nie pozycji numerycznej. Nazwy pochodzą z pierwszego wiersza danych wejściowych, więc najpierw znajdź tam odpowiednią nazwę.

Spróbuj swoich sił

# Wczytaj dane wejściowe
con <- file("stdin", "r")
products_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# Przetwórz dane wejściowe rozdzielone przecinkami
product_names <- strsplit(products_input, ",")[[1]]
price_values <- strsplit(prices_input, ",")[[1]]

# TODO: Napisz swój kod poniżej
# 1. Utwórz wektor numeryczny na podstawie cen
# 2. Przypisz wektorowi nazwy produktów za pomocą names()
# 3. Wyświetl cały wektor z nazwami
# 4. Wyświetl cenę drugiego produktu, odwołując się do niego po nazwie
# 5. Wyświetl cenę ostatniego produktu, odwołując się do niego po nazwie
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator R online