Viết hàm

R nâng cao

Filip Schouwenaars

DataCamp Instructor

Khi nào tự viết hàm?

  • Giải một vấn đề cụ thể, rõ ràng
  • Nguyên tắc “hộp đen”
  • Nếu chạy đúng, bên trong ít quan trọng hơn
R nâng cao

Hàm triple()

R nâng cao

Hàm triple()

my_fun <- function(arg1, arg2) {
  body
}
R nâng cao

Hàm triple()

triple <- function(arg1, arg2) {
  body
}
R nâng cao

Hàm triple()

triple <- function(x) {
  body
}
R nâng cao

Hàm triple()

triple <- function(x) {
  3 * x
}
R nâng cao

Hàm triple()

triple <- function(x) {
  3 * x
}
ls()
"triple"
triple(6)
18
  • Số 6 khớp với đối số x (theo vị trí)
  • Thân hàm được chạy: 3 * 6
  • Biểu thức cuối = giá trị trả về
R nâng cao

return()

triple <- function(x) {
  y <- 3 * x
  return(y)
}
triple(6)
18
R nâng cao

Hàm math_magic()

R nâng cao

Hàm math_magic()

R nâng cao

Hàm math_magic()

R nâng cao

Hàm math_magic()

my_fun <- function(arg1, arg2) {
  body
}
R nâng cao

Hàm math_magic()

math_magic <- function(arg1, arg2) {
  body
}
R nâng cao

Hàm math_magic()

math_magic <- function(a, b) {
  body
}
R nâng cao

Hàm 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 nâng cao

Đối số tùy chọn

math_magic <- function(a, b = 1) {
  a*b + a/b
}
math_magic(4)
8
math_magic(4, 0)
Inf
R nâng cao

Dùng return()

math_magic <- function(a, b = 1) {
  if(b == 0){
    return(0)
  }
  a*b + a/b
}
math_magic(4, 0)
0
R nâng cao

Ayo berlatih!

R nâng cao

Preparing Video For Download...