# Creating a matrix for demonstration matrix_data <- matrix(1:9, nrow=3, byrow=TRUE) print("Original Matrix:") print(matrix_data) # Using apply on a matrix # ----------------------- # Sum of each row row_sums <- apply(matrix_data, 1, sum) print("Sum of each row:") print(row_sums) # Sum of each column col_sums <- apply(matrix_data, 2, sum) print("Sum of each column:") print(col_sums) # Creating a list for demonstration list_data <- list(a = 1:5, b = 6:10, c = 11:15) print("Original List:") print(list_data) # Using lapply on a list # ---------------------- # Compute the mean of each element in the list list_means <- lapply(list_data, mean) print("Mean of each list element:") print(list_means) # Using sapply on a list # ---------------------- # sapply simplifies the result to a vector or matrix if possible list_means_simplified <- sapply(list_data, mean) print("Simplified mean of each list element:") print(list_means_simplified) # Using vapply on a list # ---------------------- # vapply allows for specifying the type of return value, making it safer than sapply list_means_vapply <- vapply(list_data, mean, numeric(1)) print("Vapply mean of each list element:") print(list_means_vapply) # Creating a vector and factor for demonstration vector_data <- c(1, 2, 3, 4, 5, 6) factor_data <- gl(2, 3, labels = c("Group1", "Group2")) # Using tapply on a vector # ------------------------ # Apply a function over subsets of a vector group_means <- tapply(vector_data, factor_data, mean) print("Mean of vector elements by group:") print(group_means)