Contents

In this tutorial, we will discuss about `sapply()`

function in R with some examples. `sapply()`

function is available in `base`

R package.

## sapply() function in R

The `sapply()`

function takes a vector, list or data frame, an index and a function (built-in or user-defined function) as inputs.

The `sapply()`

function is similar to `lapply()`

function, but it simplify the output (`sapply`

stands for **simplified apply**). The output of `sapply()`

function is a vector or matrix.

The general syntax of `sapply()`

function is

`sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)`

where,

**X:**a list or a vector or a data frame.**FUN:**the function to be applied.**...:**optional argument to`FUN`

.**simplify:**should the result be simplified to a vector, matrix or higher dimensional array?**USE.NAMES:**logical; if TRUE and if X is character, use X as names for the result unless it had names already.

Note that in `sapply()`

function if we use `simplify =FALSE`

, the result is exactly same as `lapply()`

function.

## sapply() Function on vector

### Example 1: sapply() function on vector

Compute natural logarithm of elements of vector `x =10,25,30`

.

```
# Define vector x
x <- c(10,25,30)
# compute natural logarithm of each element of x
sapply(x, log)
```

`[1] 2.302585 3.218876 3.401197`

### Example 2: sapply() function on vector

Suppose we have a character vector of names as `Name =(john","gloria","larry","rajan")`

.

```
# Define character vector Name
Name <- c("john", "gloria", "rajan", "mary", "sonam")
# convert Names to upper case
sapply(Name, toupper, USE.NAMES = FALSE)
```

`[1] "JOHN" "GLORIA" "RAJAN" "MARY" "SONAM" `

Note that we can also use `log`

function as `log(x)`

on numeric vector to get a vector and `toupper`

function as `toupper(Name)`

on character vector `Name`

to get the character vector.

## sapply() Function on List

In order to use `sapply()`

function, let us create a list as follows:

```
P <- c(10, 12, 28)
Q <- 1:5
R <- 11:15
myList <- list(P, Data = data.frame(Q, R))
myList
```

```
[[1]]
[1] 10 12 28
$Data
Q R
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
```

### Example 3: sapply() Function on List

Apply `sum`

function on the components of list using `sapply()`

function to get the sum of the elements of each component of list.

```
## apply the sum function on myList
sapply(myList, sum)
```

```
Data
50 80
```

### Example 4: sapply() Function on List

When we use a square root function in `sapply()`

function, it applies the square root function on each element of each component of a list and return the result as list.

```
# apply sqrt function on myList
sapply(myList, sqrt)
```

```
[[1]]
[1] 3.162278 3.464102 5.291503
$Data
Q R
1 1.000000 3.316625
2 1.414214 3.464102
3 1.732051 3.605551
4 2.000000 3.741657
5 2.236068 3.872983
```

## sapply Function on Data Frame

Let us create a sample data frame to understand the use of `sapply()`

function on data frame.

```
Name <- c("john", "gloria", "rajan", "mary", "sonam")
Gender <- factor(c("M", "F", "M", "F", "F"))
Height <- c(165, 158, 160, 157, 155)
Weight <- c(72, 65, 69, 58, 49)
df <- data.frame(Name, Gender, Height, Weight)
df
```

```
Name Gender Height Weight
1 john M 165 72
2 gloria F 158 65
3 rajan M 160 69
4 mary F 157 58
5 sonam F 155 49
```

### Example 5: sapply() Function on Data Frame

Suppose we want to check the class of all columns of a data frame. Using `sapply()`

function on data frame and specifying function as `class`

to get the class of each column of a data frame.

`sapply(df, class)`

```
Name Gender Height Weight
"character" "factor" "numeric" "numeric"
```

### Example 6: sapply() Function on Data Frame

Suppose we want to calculate standard error of some columns of given data frame. First define a user-defined function for standard error as follows:

```
std.error <- function(x) {
sd(x) / sqrt(length(x))
}
```

Using `sapply()`

function on $3^{rd}$ and $4^{th}$ column of data frame `df`

we can calculate standard error for the selected columns and get the result in vector form.

```
# compute the standard error of 3:4 columns of df
sapply(df[, 3:4], std.error)
```

```
Height Weight
1.702939 4.130375
```

### Example 7: sapply() Function on Data Frame

Suppose we want to calculate quantile of $3^{rd}$ and $4^{th}$ column of data frame `df`

.

Using `sapply()`

function on $3^{rd}$ and $4^{th}$ column of data frame `df`

we can calculate quantiles for the selected columns and get the result in matrix format.

```
# compute the standard error of 2:3 columns of df
sapply(df[, 3:4], quantile, probs = c(0.25, 0.50, 0.75))
```

```
Height Weight
25% 157 58
50% 158 65
75% 160 69
```

Note that as explained in the syntax of `sapply()`

function, we can use optional argument `...`

to the function in `sapply()`

function, like `probs=c()`

for the `quantile()`

function.

## Endnote

In this tutorial you learned about `sapply()`

function in R and how to use `sapply()`

function on vector,list and data frame with illustration.

Learn more about functions in R, refer to the following tutorials:

Hopefully you enjoyed learning this tutorial on `sapply()`

function in R. Hope the content is more than sufficient to understand `sapply()`

function in R.