関数を書く

中級 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...