Wartości zwracane
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 48 z 78.
Do tej pory nasze funkcje wypisywały wynik bezpośrednio. Często jednak chcesz, aby funkcja obliczyła wartość i zwróciła ją, żeby można było użyć jej w innym miejscu kodu. Właśnie do tego służą wartości zwracane.
Użyj funkcji return(), aby zwrócić wartość z funkcji:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result)Wynik:
[1] 8Zamiast wypisywać wynik wewnątrz funkcji, zwracamy sumę. Zwróconą wartość można następnie zapisać w zmiennej, wykorzystać w obliczeniach lub przekazać do innych funkcji.
Dzięki temu funkcje są znacznie bardziej wszechstronne:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3))Wynik:
[1] 16W języku R, jeśli nie używasz return(), funkcja automatycznie zwraca ostatnie obliczone wyrażenie. Jednak jawne użycie return() sprawia, że kod jest bardziej czytelny i jest szczególnie przydatne, gdy chcesz wcześniej zakończyć działanie funkcji.
Wyzwanie
ŁatwyUtwórz funkcję o nazwie calculate_power, która przyjmuje dwa argumenty: base i exponent. Funkcja powinna zwracać wynik podniesienia liczby base do potęgi exponent (za pomocą operatora ^).
Odczytaj z wejścia dwie liczby, przekonwertuj je na wartości numeryczne i wywołaj swoją funkcję. Zapisz zwróconą wartość w zmiennej o nazwie result, a następnie wypisz result.
Na przykład, jeśli dane wejściowe to 2 i 3, wynikiem powinno być:
[1] 8Jeśli dane wejściowe to 5 i 2, wynikiem powinno być:
[1] 25Spróbuj swoich sił
# Odczytaj dane wejściowe
con <- file("stdin", "r")
base <- as.numeric(suppressWarnings(readLines(con, n = 1)))
exponent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: Utwórz funkcję o nazwie calculate_power, która przyjmuje base i exponent
# i zwraca base podniesione do potęgi exponent przy użyciu operatora ^
# TODO: Wywołaj swoją funkcję z wartościami wejściowymi i zapisz wynik w 'result'
# Wyświetl wynik
print(result)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