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.