Operacje na wektorach
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 59 z 78.
Jedną z największych zalet R jest możliwość wykonywania operacji na całych wektorach jednocześnie, bez konieczności iterowania przez każdy element. Dzięki temu Twój kod jest czytelniejszy i bardziej wydajny.
Gdy zastosujesz operator arytmetyczny do wektora, R wykonuje działanie na każdym elemencie:
prices <- c(10, 25, 15, 30)
discounted <- prices * 0.9
print(discounted)Wynik:
[1] 9.0 22.5 13.5 27.0Możesz również wykonywać działania na dwóch wektorach o tej samej długości. R łączy ze sobą odpowiadające sobie elementy:
quantities <- c(2, 1, 4, 3)
prices <- c(10, 25, 15, 30)
totals <- quantities * prices
print(totals)Wynik:
[1] 20 25 60 90R udostępnia przydatne wbudowane funkcje do typowych obliczeń na wektorach, takie jak sum(), mean(), min() i max():
scores <- c(85, 92, 78, 95, 88)
print(sum(scores))
print(mean(scores))
print(min(scores))
print(max(scores))Wynik:
[1] 438
[1] 87.6
[1] 78
[1] 95Wyzwanie
ŁatwyOto podane wektory:
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)Wykonaj następujące operacje i wypisz każdy wynik:
- Oblicz zarobki za każdy dzień, mnożąc
hours_workedprzezhourly_rate(element po elemencie). Wypisz ten wektor. - Zastosuj premię w wysokości 10% do wszystkich zarobków dziennych (pomnóż przez
1.1). Wypisz zaktualizowany wektor zarobków. - Wypisz łączne zarobki za tydzień, używając
sum() - Wypisz średnie zarobki dzienne, używając
mean() - Wypisz najwyższe zarobki za jeden dzień, używając
max() - Wypisz najniższe zarobki za jeden dzień, używając
min()
Wynik powinien być następujący:
[1] 120 140 162 132 136
[1] 132.0 154.0 178.2 145.2 149.6
[1] 759
[1] 151.8
[1] 178.2
[1] 132Spróbuj swoich sił
# Dane wektory
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)
# TODO: Napisz swój kod poniżej
# 1. Oblicz dzienne zarobki (mnożenie element po elemencie)
# 2. Dodaj premię 10% do dziennych zarobków
# 3. Wyświetl łączne zarobki za tydzień, używając sum()
# 4. Wyświetl średnie dzienne zarobki, używając mean()
# 5. Wyświetl najwyższe zarobki z jednego dnia, używając max()
# 6. Wyświetl najniższe zarobki z jednego dnia, używając min()Ta 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