- Relational Operators in R
- Logical Operators in R
- Conditional Statements in R
- For Loop in R Programming
- While and Repeat Loop in R Programming
- Functions in R Programming
- Creating Functions in R
- Apply Functions in R
- Importing Data from External Data Sources in R
- Importing Data Using read.csv in R
- Import Data using read.table in R
- Importing Data Using data.table – fread in R
- Importing Data from Excel in R
- Using XLConnect in R Programming
- Importing Data from a Database in R
- SQL Queries from R
- Importing Data from Web in R

# Apply Functions in R

In the earlier lessons, we learned about how we can use the `for`

loop to iterate over various R objects. R also provides other functions for implicit looping such as `apply`

, `lapply`

and `sapply`

which are even easier to use. It is a whole family of functions that are commonly referred to as 'Apply' family of functions.

The `apply`

functions are not just for compactness of code, but also for speed. If speed is an issue, such as when working with large data sets or long-running simulations, one must avoid explicit loops (read 'for' loop, or 'while' loop) as much as possible, because with `apply()`

function and its variants, R can do them a lot faster than you can.

### The `apply`

Function

The `apply()`

function applies a simple function over dimensions of a data structure. The `apply()`

function has the following structure:

```
> args(apply)
function (X, MARGIN, FUN, ...)
```

- X is any R structure with dimensions (matrix, data frame, array .. NOT lists or vectors)
- MARGIN is the dimension number (1 = rows, 2 = columns)
- FUN is the function to apply (example:
`mean()`

) - ... represents additional arguments to the function

### Example

Let's define a simple matrix `myMatrix`

which we will use to understand the `apply()`

function. The `rpois()`

function is a built-in function that can be used to simulate N independent Poisson random variables. For example, we can generate 30 Poisson random numbers with parameter λ = 3 as follows: `> rpois(30, 3)`

```
> myMatrix <- matrix(rpois(30,3),5)
> myMatrix
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3 1 7 4 4 3
[2,] 2 3 5 5 2 3
[3,] 2 5 1 2 2 1
[4,] 3 5 1 4 5 3
[5,] 0 0 4 2 1 2
>
```

# This content is for paid members only.

Join our membership for lifelong unlimited access to all our data science learning content and resources.