Argumenty funkcji
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 47 z 78.
Funkcje stają się znacznie potężniejsze, gdy mogą przyjmować dane wejściowe. Argumenty (nazywane również parametrami) pozwalają przekazywać wartości do funkcji, dzięki czemu jest ona elastyczna i można jej ponownie używać w różnych sytuacjach.
Aby dodać argumenty, umieść je w nawiasach podczas definiowania funkcji:
greet <- function(name) {
print(paste("Hello,", name))
}
greet("Alice")
greet("Bob")Wynik:
[1] "Hello, Alice"
[1] "Hello, Bob"Funkcja działa teraz z dowolnym podanym przez Ciebie imieniem. Gdy wywołasz greet("Alice"), wartość "Alice" zostanie przypisana do parametru name wewnątrz funkcji.
Możesz zdefiniować wiele argumentów, oddzielając je przecinkami:
add <- function(a, b) {
print(a + b)
}
add(5, 3)
add(10, 20)Wynik:
[1] 8
[1] 30Podczas wywoływania funkcji z wieloma argumentami wartości są przypisywane do parametrów w kolejności. Pierwsza wartość trafia do pierwszego parametru, druga wartość do drugiego parametru i tak dalej.
Wyzwanie
ŁatwyUtwórz funkcję o nazwie calculate_area, która przyjmuje dwa argumenty: length i width. Funkcja powinna wyświetlać pole powierzchni (długość pomnożoną przez szerokość) za pomocą print().
Wczytaj dwie liczby z wejścia, przekonwertuj je na wartości liczbowe i wywołaj funkcję z tymi wartościami.
Na przykład, jeśli dane wejściowe to 5 i 3, wynikiem powinno być:
[1] 15Jeśli dane wejściowe to 7 i 4, wynikiem powinno być:
[1] 28Spróbuj swoich sił
# Odczytaj dane wejściowe
con <- file("stdin", "r")
length <- as.numeric(suppressWarnings(readLines(con, n = 1)))
width <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# TODO: Utwórz funkcję o nazwie calculate_area, która przyjmuje length i width
# i wypisuje pole powierzchni (length * width)
# Wywołaj swoją funkcję z wartościami wejściowymiTa 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