Написання функцій

Середній рівень R

Filip Schouwenaars

DataCamp Instructor

Коли писати власні?

  • Розв'язуйте конкретну, чітко окреслену задачу
  • Принцип «чорної скриньки»
  • Якщо працює, внутрішня логіка менш важлива
Середній рівень R

Функція triple()

Середній рівень R

Функція triple()

my_fun <- function(arg1, arg2) {
  body
}
Середній рівень R

Функція triple()

triple <- function(arg1, arg2) {
  body
}
Середній рівень R

Функція triple()

triple <- function(x) {
  body
}
Середній рівень R

Функція triple()

triple <- function(x) {
  3 * x
}
Середній рівень R

Функція triple()

triple <- function(x) {
  3 * x
}
ls()
"triple"
triple(6)
18
  • Число 6 зіставлено з аргументом x (за позицією)
  • Виконано тіло функції: 3 * 6
  • Останній вираз = значення, що повертається
Середній рівень R

return()

triple <- function(x) {
  y <- 3 * x
  return(y)
}
triple(6)
18
Середній рівень R

Функція math_magic()

Середній рівень R

Функція math_magic()

Середній рівень R

Функція math_magic()

Середній рівень R

Функція math_magic()

my_fun <- function(arg1, arg2) {
  body
}
Середній рівень R

Функція math_magic()

math_magic <- function(arg1, arg2) {
  body
}
Середній рівень R

Функція math_magic()

math_magic <- function(a, b) {
  body
}
Середній рівень R

Функція math_magic()

math_magic <- function(a, b) {
  a*b + a/b
}
math_magic(4, 2)
10
math_magic(4)
Error: argument "b" is missing, with no default
Середній рівень R

Необов'язковий аргумент

math_magic <- function(a, b = 1) {
  a*b + a/b
}
math_magic(4)
8
math_magic(4, 0)
Inf
Середній рівень R

Використовуйте return()

math_magic <- function(a, b = 1) {
  if(b == 0){
    return(0)
  }
  a*b + a/b
}
math_magic(4, 0)
0
Середній рівень R

Давайте потренуємось!

Середній рівень R

Preparing Video For Download...