pmap_safely: Safely apply a function to each row of a data frame.

Description Usage Arguments Examples

View source: R/pmap_safely.R

Description

Easily keep track of inputs and outputs of a function safely applied to each row of a data frame. Output is rectangularized into the original data frame for easy analysis.

Usage

1
pmap_safely(.d, .f)

Arguments

.d

A data frame with the inputs to .f.

.f

A function to apply to each row of .d.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# a function to apply
calculate_if_positive <- function(a, b){
    if(a < 0 & b < 0) {stop("Both numbers are negative.")}
    else if(a < 0) {stop("Just the first number is negative")}
    else if(b < 0) {stop("Just the second number is negative")}

    list(add = a + b,
         subtract = a - b,
         multiply = a * b,
         divide = a / b)
}
# data frame to apply the function to by row
numbers <- data.frame(a = c(-1, 0, 1, 2),
                      b = c(2, 1, 0, -1),
                      irrelevant = c("minneapolis", "st_paul", "minneapolis", "st_paul"))

# apply
pmap_safely(numbers, calculate_if_positive)

stenhaug/purrrplus documentation built on Jan. 30, 2021, 6:10 a.m.