Want to share your content on R-bloggers? click here if you have a blog, or here if you don't. mapply() works with multivariate arrays, and applys a function to a set of vector or list arguments. mapply() also simplifies the output.

Structure of the mapply() function:
mapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE, USE.NAMES = TRUE)

Answers to the exercises are available here.

Exercise 1
Beginning level

Required dataframe:
PersonnelData <- data.frame(Representative=c(1:4), Sales=c(95,110,115,90), Territory=c(1:4))

Using mapply(), find the classes of PersonnelData‘s columns.

Exercise 2
Beginning level

Print “PersonnelData” with the mapply() function.

Exercise 3
Beginning level

Use mapply() to inspect “PersonnelData” for numeric values.

Exercise 4
Intermediate level

Use mapply() to sum the vectors “5:10” and “20:25“.

Exercise 5
Intermediate level

Use mapply() to paste the vector “1:4” and “5:8“, with the separator “LETTERS[1:4]“.

Learn more about mapply, and the entire family of apply() functions in the online course Learn R by Intensive Practice. In this course you will learn how to:

• Do any sort of manipulation with datasets
• Create and master the manipulation of vectors, lists, dataframes, and matrices
• Confidently write apply() functions and design any logic within the apply function.
• Melt, reshape, aggregate, and make pivot tables from dataframes
• And much more

Exercise 6
Intermediate level

Use mapply() to paste “PersonnelData$Representative“, “PersonnelData$Sales“, and “PersonnelData$Territory“, with the MoreArgs=” argument of “list(sep="-")“. Exercise 7 Advanced level Required variable: NewSales <- data.frame(Representative=c(1:4), Sales=c(104, 97, 112, 94), Territory=c(1:4)) Sum the corresponding elements of PersonnelData$Sales and NewSales\$Sales.

Exercise 8

Required function:
merge.function <- function(x,y){return(x+y)}

Use merge.function to combine the Sales totals from PersonnelData and NewSales.

Exercise 9

mcmapply is a parallelized version of mapply.

The structure of mcmapply() is:
mcmapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE, USE.NAMES = TRUE, mc.preschedule = TRUE, mc.set.seed = TRUE, mc.silent = FALSE, mc.cores = getOption("mc.cores", 2L), mc.cleanup = TRUE)

Required library:
library(parallel)

Use mcmapply() to generate 5 lists of 1:5 random numbers.

Exercise 10
Using mcmapply(), create a 10 by 10 matrix with 10 rows of the sequence 1:10: