# ============================================================
# Writing Your Own Functions
# R Foundations — Rverse Analytics
# https://rverseanalytics.com/learn/functions
# ============================================================

# Write your own function
celsius_to_f <- function(c) {
  c * 9/5 + 32
}
celsius_to_f(25)
celsius_to_f(c(0, 20, 37))
# Arguments can have default values
greet <- function(name, greeting = "Hello") {
  paste0(greeting, ", ", name, "!")
}
greet("Bartu")
greet("Bartu", "Hi")
# Do several steps, then return a result
describe <- function(x) {
  m <- mean(x)
  s <- sd(x)
  return(c(mean = m, sd = s))
}
describe(c(4, 8, 15, 16, 23, 42))
# Apply your function across many values
square <- function(x) x^2
sapply(1:5, square)
