# Multivariate Apply Exercises

January 17, 2017
By

(This article was first published on R-exercises, and kindly contributed to R-bloggers) `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

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`:

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...