Apply Family Functions

The apply family of functions in R (apply, lapply, sapply, tapply, mapply) provides a powerful and efficient way to perform operations on vectors, lists, matrices, and data frames without using explicit loops. These functions simplify repetitive computations and make your code cleaner.

1. apply() Function

apply() is used to apply a function over the rows or columns of a matrix or array.

# Create a matrix
mat <- matrix(1:9, nrow=3, ncol=3)# Apply sum function to rows
apply(mat, 1, sum)# Apply mean function to columns
apply(mat, 2, mean)

Parameters:

  • First argument: matrix or array
  • Second argument: 1 for rows, 2 for columns
  • Third argument: function to apply

2. lapply() Function

lapply() applies a function to each element of a list or vector and always returns a list.

my_list <- list(a=1:5, b=6:10, c=11:15)# Get the sum of each element
lapply(my_list, sum)

3. sapply() Function

sapply() is similar to lapply() but tries to simplify the result to a vector or matrix if possible.

my_vector <- 1:5# Square each element
sapply(my_vector, function(x) x^2)

4. tapply() Function

tapply() applies a function to subsets of a vector defined by a factor or grouping variable.

scores <- c(90, 85, 88, 92, 75)
groups <- c("A", "B", "A", "B", "A")# Calculate mean score for each group
tapply(scores, groups, mean)

5. mapply() Function

mapply() is a multivariate version of sapply(), applying a function to multiple arguments in parallel.

x <- 1:5
y <- 6:10# Add corresponding elements of x and y
mapply(sum, x, y)

6. Advantages of Apply Family Functions

  • Avoid explicit loops for cleaner and faster code
  • Efficient for large datasets and complex operations
  • Flexible and works on matrices, lists, vectors, and data frames
  • Supports anonymous functions for customized operations

Conclusion

The apply family of functions in R is a powerful alternative to loops for performing repetitive tasks efficiently. Functions like apply(), lapply(), sapply(), tapply(), and mapply() allow you to manipulate data structures, calculate summaries, and perform transformations in a concise and readable way. Mastering these functions improves both productivity and performance in R programming.

Home ยป R Programming (R Lang) > Programming in R > Apply Family Functions