sapply Function in R with Examples

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.

VRCBuzz co-founder and passionate about making every day the greatest day of life. Raju is nerd at heart with a background in Statistics. Raju looks after overseeing day to day operations as well as focusing on strategic planning and growth of VRCBuzz products and services. Raju has more than 25 years of experience in Teaching fields. He gain energy by helping people to reach their goal and motivate to align to their passion. Raju holds a Ph.D. degree in Statistics. Raju loves to spend his leisure time on reading and implementing AI and machine learning concepts using statistical models.

Leave a Comment