Learn R Programming

dataPreparation (version 0.4.3)

aggregateByKey: Automatic dataSet aggregation by key

Description

Automatic aggregation of a dataSet set according to a key.

Usage

aggregateByKey(dataSet, key, verbose = TRUE, thresh = 53, ...)

Arguments

dataSet

Matrix, data.frame or data.table (with only numeric, integer, factor, logical, character columns)

key

Name of a column of dataSet according to which the set should be aggregated (character)

verbose

Should the algorithm talk? (logical, default to TRUE)

thresh

Number of max values for frequencies count (numerical, default to 53)

...

Optional argument: functions: aggregation functions for numeric columns (vector of function names (character), optional, if not set we use: c("mean", "min", "max", "sd"))

Value

A data.table with one line per key elements and multiple new columns.

Details

Perform aggregation depending on column type:

  • If column is numeric functions are performed on the column. So 1 numeric column give length(functions) new columns,

  • If column is character or factor and have less than thresh different values, frequency count of values is performed,

  • If column is character or factor with more than thresh different values, number of different values for each key is performed,

  • If column is logical, number of TRUE is computed.

In all cases, if the set as more rows than unique key, a number of lines will be computed.

Be careful using functions argument, given functions should be an aggregation function, meaning that for multiple values it should only return one value.

Examples

Run this code
# NOT RUN {
# Get generic dataset from R
data("adult")

# Aggregate it using aggregateByKey, in order to extract characteristics for each country
adult_aggregated <- aggregateByKey(adult, key = 'country')

# Exmple with other functions
power <- function(x){sum(x^2)}
adult_aggregated <- aggregateByKey(adult, key = 'country', functions = c("power", "sqrt"))

# sqrt is not an aggregation function, so it wasn't used.
# }
# NOT RUN {
# "##NOT RUN:" mean that this example hasn't been run on CRAN since its long. But you can run it!
# }

Run the code above in your browser using DataLab