How to use the Apply function in R


Previously we showed you how to write a loop in R. Very often it’s a better idea to use the apply function in R than to write a loop.

So what is the apply function in R?

Well, apply is really a family of functions that have varying uses. Here are the available R apply functions: apply, lapply, sapply, vapply, mapply, rapply and tapply.

Apply is the head of the family. Apply operates on arrays: apply(X, MARGIN, FUN, …). This will return a vector or array or list of values obtained by applying a function to margins of an array.

The Arguments are the following:
X – the array to be used.

MARGIN – a vector giving the subscripts which the function will be applied over. 1 indicates rows, 2 indicates columns, c(1,2) indicates rows and columns.

FUN – the function to be applied: see Details. In the case of functions like +, %*%, etc., the function name must be backquoted or quoted.

… – optional arguments to FUN.

Lets look at an example:

>cars #built-in dataset Speed and Stopping Distances of Cars

I won’t type the entire print but here are a few rows:

   speed dist
1      4    2
2      4   10
3      7    4
4      7   22
5      8   16

This goes to row 50.

What if we wanted to get the sum of speed?

speed  dist 
  770  2149

What if you wanted to get the mean?

> apply(cars,2,mean)
speed  dist 
15.40 42.98

These are basic examples of using the apply function in R. Next we will look at the other family members of apply.