Multivariate Apply Exercises
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]“.
- 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
Advanced level
Required function:
merge.function <- function(x,y){return(x+y)}
Use merge.function to combine the Sales totals from PersonnelData and NewSales.
Exercise 9
Advanced level
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
Advanced level
Using mcmapply(), create a 10 by 10 matrix with 10 rows of the sequence 1:10:
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.