aggregation_map_helpers {matsbyname}R Documentation

Aggregation map conversions

Description

Aggregation is a many-to-few operation where specifics are summed to comprise broader categories. Examples include "John", "Paul", "George", and "Ringo" aggregated to "Beatles"; and "Mick", "Keith", "Ronnie", "Bill", and "Charlie" aggregated to "Stones". An aggregation map is a named list that describes the aggregation to be performed. An aggregation map for the examples above is list(Beatles = c("John", "Paul", "George", "Ringo"), Stones = c("Mick", "Keith", "Ronnie", "Bill", "Charlie")) Aggregation maps can be generated from many shapes of data. These functions assist with translating from different data shapes to aggregation maps.

Usage

agg_table_to_agg_map(.df, few_colname, many_colname)

agg_map_to_agg_table(aggregation_map, few_colname, many_colname)

Arguments

.df

A data frame from which an aggregation map is to be extracted.

few_colname

The string name of a column in a data frame that corresponds to the "few" aggregated categories.

many_colname

The string name of a column in a data frame that corresponds to the "many" specific items that will be aggregated.

aggregation_map

An aggregation map to be converted to a data frame.

Value

For agg_table_to_agg_map(), an aggregation map. For agg_map_to_agg_table(), a data.frame, probably at tibble.

Examples

bands <- tibble::tribble(~band, ~members, 
                         "The Beatles", "John", 
                         "The Beatles", "Paul", 
                         "The Beatles", "George", 
                         "The Beatles", "Ringo", 
                         # Rejects duplicates and NA
                         "The Beatles", "Ringo",
                         "The Beatles", NA, 
                         "Rolling Stones", "Mick", 
                         "Rolling Stones", "Keith",
                         "Rolling Stones", "Ronnie",
                         "Rolling Stones", "Bill",
                         "Rolling Stones", "Charlie")
agg_map <- agg_table_to_agg_map(bands, 
                                 few_colname = "band",
                                 many_colname = "members")
agg_map
agg_map_to_agg_table(agg_map, few_colname = "bands", many_colname = "members")

[Package matsbyname version 0.6.10 Index]