Domyślne wartości parametrów
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 51 z 78.
Czasami chcesz, aby funkcja miała „standardowe” działanie, które można dostosować w razie potrzeby. Domyślne wartości parametrów pozwalają określić, jaką wartość powinien mieć parametr, jeśli wywołujący go nie poda.
Ustawiasz wartość domyślną, używając = w definicji funkcji:
greet <- function(name = "Guest") {
print(paste("Hello,", name))
}
greet()
greet("Alice")Wynik:
[1] "Hello, Guest"
[1] "Hello, Alice"Wywołana bez argumentu funkcja używa wartości "Guest" jako domyślnej. Gdy podasz wartość, zastąpi ona wartość domyślną.
Możesz łączyć wymagane i opcjonalne parametry. Parametry z wartościami domyślnymi powinny występować po tych bez wartości domyślnych:
calculate_total <- function(price, tax_rate = 0.1) {
return(price + (price * tax_rate))
}
print(calculate_total(100))
print(calculate_total(100, 0.2))Wynik:
[1] 110
[1] 120Tutaj price jest wymagane, a tax_rate domyślnie wynosi 10%. Dzięki temu Twoje funkcje są elastyczne — proste w użyciu w typowych przypadkach, ale można je dostosować w razie potrzeby.
Wyzwanie
ŁatwyUtwórz funkcję o nazwie calculate_shipping, która przyjmuje dwa argumenty:
weight– waga paczki (wymagana)rate– koszt jednostki wagi (opcjonalny, domyślnie5)
Funkcja powinna zwracać koszt wysyłki obliczony jako weight * rate.
Otrzymasz dwa wiersze danych wejściowych:
- Wartość wagi
- Wartość stawki LUB słowo
default
Jeśli drugą daną wejściową jest default, wywołaj funkcję, podając tylko wagę (użyta zostanie domyślna stawka). W przeciwnym razie wywołaj funkcję, podając zarówno wagę, jak i podaną stawkę.
Wypisz zwrócony wynik.
Na przykład, jeśli dane wejściowe to:
10
defaultWynik powinien być następujący:
[1] 50Jeśli dane wejściowe to:
10
3Wynik powinien być następujący:
[1] 30Spróbuj swoich sił
# Odczytaj dane wejściowe
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Napisz swój kod poniżej
# 1. Zdefiniuj funkcję calculate_shipping z argumentami weight (wymagany) i rate (opcjonalny, domyślnie = 5)
# 2. Sprawdź, czy rate_input to "default", czy liczba
# 3. Wywołaj funkcję w odpowiedni sposób i wypisz wynikTa 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