evoalgs-r-practise/functions.R
2024-04-30 10:03:37 +02:00

65 lines
1.6 KiB
R

# Basic Function Definition
# -------------------------
# A simple function that adds two numbers
add_numbers <- function(x, y) {
sum <- x + y
return(sum)
}
# Using the function
result <- add_numbers(5, 3)
print(paste("Sum:", result))
# Function with Default Parameters
# --------------------------------
# A function with default values for parameters
multiply_numbers <- function(x, y = 2) {
product <- x * y
return(product)
}
# Using the function with default parameter
default_product <- multiply_numbers(4)
print(paste("Default Product:", default_product))
# Using the function by specifying both parameters
specified_product <- multiply_numbers(4, 3)
print(paste("Specified Product:", specified_product))
# Returning Multiple Values
# -------------------------
# A function that returns multiple values using a list
operate_numbers <- function(a, b) {
sum <- a + b
diff <- a - b
prod <- a * b
return(list(sum = sum, difference = diff, product = prod))
}
# Using the function
results <- operate_numbers(10, 5)
print("Operations Result:")
print(results)
# Variable Scope
# --------------
# A function to demonstrate variable scope
outer_function <- function() {
internal_var <- 20
inner_function <- function() {
print(paste("Accessing internal_var inside inner_function:", internal_var))
}
inner_function()
return(internal_var)
}
# Using the function
outer_result <- outer_function()
print(paste("Returned from outer_function:", outer_result))
# Anonymous Functions
# -------------------
# Using an anonymous function (a function without a name)
squared_numbers <- sapply(1:5, function(x) x^2)
print("Squared Numbers:")
print(squared_numbers)