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 28Aby 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
30Moż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
85Wektory 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.
Wyzwanie
ŁatwyOtrzymasz dwa wiersze danych wejściowych:
- Rozdzieloną przecinkami listę nazw produktów (np.
laptop,phone,tablet,headphones) - Rozdzieloną przecinkami listę odpowiadających im cen (np.
999,699,449,199)
Wykonaj następujące operacje:
- Utwórz wektor numeryczny z cen
- Przypisz nazwy produktów do wektora za pomocą funkcji
names() - Wypisz cały nazwany wektor
- Wypisz cenę drugiego produktu, odwołując się do niego za pomocą jego nazwy
- 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,4Wynik powinien być następujący:
apple banana orange grape
2 1 3 4
banana
1
grape
4Uwaga: 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 nazwieTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 2
Operatory logiczne (AND, OR)Operatory logiczne, część 2 (NOT)Powtórka — prosta logikaLogika wektoryzowana, część 1Logika wektoryzowana, część 27Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika10FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz2Zmienne i typy danych
Liczbowy typ danychCałkowity typ danychZnakowy typ danychLogiczny typ danychSprawdzanie typów danychKonwencje nazewnictwaBrakujące wartości: NAPodsumowanie – tworzenie zmiennych8Pętle
Pętla forPętla whilePrzerwijNastępna iteracja (continue)Powtórka — silniaGenerowanie sekwencji (seq, :)Pętle zagnieżdżonePowtórka — dynamiczne wprowadzanie danych3Operatory, część 1
Operatory arytmetyczneDzielenie całkowite i moduloOperatory przypisaniaPowtórka — prosta matematykaOperatory porównania6Podstawowe wejście/wyjście
Wyświetlanie danychCat jako wyjścieWyjście z użyciem zmiennychOdczyt danych wejściowych za pomocą readline()Podstawy konwersji typówPowtórka — kalkulator wiekuPowtórka — prawda czy fałsz9Funkcje
Deklarowanie funkcjiArgumenty funkcjiWartości zwracanePowtórzenie — funkcja SigmaPowtórzenie — funkcja walidującaDomyślne wartości parametrówPoćwicz samodzielnie: Kompilator R online