Compute Aggregates

Share:

Description

The function takes a relational data frame and computes the aggregation based on the relation specified.

Usage

1
2
3
4
5
Aggregation(data, aggVar, weightVar = rep(NA, length(aggVar)),
  year = "Year", relationDF = FAOcountryProfile[, c("FAOST_CODE",
  "M49_FAOST_CODE")], aggMethod = rep("sum", length(aggVar)),
  applyRules = TRUE, keepUnspecified = TRUE, unspecifiedCode = 0,
  thresholdProp = rep(0.65, length(aggVar)))

Arguments

aggVar

The vector of names of the variables to be aggregated.

weightVar

The vector of names of the variables to be used as weighting when the aggregation method is weighted.

year

The column containing the time information.

data

The data frame containing the country level data.

relationDF

A relational data frame which specifies the territory and the mother country. At least one column must have a corrispondent variable name in the dataset.

aggMethod

Can be a single method for all data or a vector specifying different method for each variable. The method can be "sum", "mean", "weighted.mean".

unspecifiedCode

The output code of the unspecified group.

thresholdProp

The vector of the missing threshold for the aggregation rule to be applied. The default is set to only compute aggregation if there are more than 65 percent of data available (0.65).

applyRules

Logical, specifies whether the thresholdProp rule must be applied or not.

keepUnspecified

Whether countries with unspecified region should be aggregated into an "Unspecified" group or simply drop. Default to create the new group.

Details

The length of aggVar, aggMethod, weightVar, thresholdProp must be the same.

Aggregation should not be computed if insufficient countries have reported data. This corresponds to the argument thresholdProp which specifies the percentage which of country must report data (both for the variable to be aggregated and the weighting variable).

Examples

1
2
3
4
5
6
7
8
## example.df = data.frame(FAOST_CODE = rep(c(1, 2, 3), 2),
##                        Year = rep(c(2010, 2011), c(3, 3)),
##                        value = rep(c(1, 2, 3), 2),
##                        weight = rep(c(0.3, 0.7, 1), 2))

## Lets aggregate country 1 and 2 into one country and keep country
## 3 seperate.
## relation.df = data.frame(FAOST_CODE = 1:3, NEW_CODE = c(1, 1, 2))