Learn R Programming

collateral (version 0.5.2)

tally: Determine how many elements contain a type of mapped side effect.

Description

Unlike summary(), the tally functions return counts of individual types of side effects. This makes them easy to use with dplyr::summarise().

Usage

tally_results(x)

tally_errors(x)

tally_warnings(x)

tally_messages(x)

tally_output(x)

Arguments

x

A ``safely_mappedorquietly_mapped` list to tally.

Value

An integer vector of length 1.

Details

Importantly, the tally functions tell you how many elements returned a type of side effect, not how many side effects were returned. Some list elements might return more than one warning, for example, and these are not counted separately.

Examples

Run this code
# NOT RUN {
library(tibble)
library(dplyr)
library(tidyr)
library(collateral)

list("a", 10, 100) %>% map_safely(log) %>% tally_errors()
list(5, -12, 103) %>% map_quietly(log) %>% tally_warnings()

# if you're working with list-columns, the tally functions are useful
# in conjunction with dplyr::summarise()
mtcars %>%
  rownames_to_column(var = "car") %>%
  as_tibble() %>%
  select(car, cyl, disp, wt) %>%
  # spike some rows in cyl == 4 to make them fail
  mutate(wt = dplyr::case_when(
    wt < 2 ~ -wt,
    TRUE ~ wt)) %>%
  # nest and do some operations quietly()
  nest(data = -cyl) %>%
  mutate(qlog = map_quietly(data, ~ log(.$wt))) %>%
  summarise(
    num_results = tally_results(qlog),
    num_warnings = tally_warnings(qlog))

# }

Run the code above in your browser using DataLab