Main Content

divideVariables

Compute ratio of climate scenario variables

Since R2025a

    Description

    cs = divideVariables(cs,numerators,denominators,Name=Value) returns new climate scenario variables containing ratios of variables in the climateScenario object, cs, and appends the new variables to the property cs.IdentifierValues.Variable. You specify the variables for the ratios by using the numerators and denominators input arguments. Use the NewVariables name-value argument to name the new ratio variables.

    example

    Examples

    collapse all

    Compute the ratio of climate scenario variables contained in a climateScenario object. The climate transition scenario data that this example uses is available from the Bank of Canada and is free of charge at http://www.bankofcanada.ca.

    Load the data.

    load("BankOfCanadaClimateScenarioData.mat")
    data = ClimateTransitionScenarioData;
    head(data)
        k    CL_GEOGRAPHY    CL_SECTOR              CL_VARIABLE                    CL_UNIT                CL_SCENARIO           CL_YEAR    CL_VALUE
        _    ____________    _________    _______________________________    ___________________    ________________________    _______    ________
    
        1       Canada       National     Carbon price                       US$2014/tCO2e          Baseline (2019 policies)     2020       12.106 
        2       Canada       National     Carbon price                       US$2014/tCO2e          Below 2°C immediate          2020       12.106 
        3       Canada       National     Emissions | total GHG (scope 1)    Million tonnes CO2e    Baseline (2019 policies)     2020       781.04 
        4       Canada       National     Emissions | total GHG (scope 1)    Million tonnes CO2e    Below 2°C immediate          2020       781.04 
        5       Canada       National     Input price | Coal                 Index (2014 = 1)       Baseline (2019 policies)     2020       1.2875 
        6       Canada       National     Input price | Coal                 Index (2014 = 1)       Below 2°C immediate          2020       1.2875 
        7       Canada       National     Input price | Crops                Index (2014 = 1)       Baseline (2019 policies)     2020       1.0031 
        8       Canada       National     Input price | Crops                Index (2014 = 1)       Below 2°C immediate          2020       1.0031 
    

    Create a climateScenario object.

    cs = climateScenario(data, ...
                    RegionVar="CL_GEOGRAPHY", ...
                    VariableVar="CL_VARIABLE", ...
                    ScenarioVar="CL_SCENARIO", ...
                    YearVar="CL_YEAR", ...
                    ValueVar="CL_VALUE", ...
                    CustomIdentifiers="Sector", ...
                    CustomIdentifierVars="CL_SECTOR", ...
                    UnitVar="CL_UNIT");

    Choose a variable to use for the numerator of the ratio. This example uses the Primary Energy variables in the climateScenario object, cs, for the numerator.

    First, extract the Primary Energy variables.

    indexPrimaryEnergy = contains(string(cs.IdentifierValues.Variable), "Primary Energy");
    primaryEnergyVariables = string(cs.IdentifierValues.Variable(indexPrimaryEnergy));
    numerator = primaryEnergyVariables;

    Use the Primary Energy | Total variable for the denominator.

    denominator = "Primary Energy | Total";

    Create names for the ratio variables.

    marketShareVariables = primaryEnergyVariables + " Market Share";

    Use divideVariables by specifying the NewVariables name-value argument.

    cs = divideVariables(cs,numerator,denominator,NewVariables=marketShareVariables);

    To display the new variables, you can query the output climateScenario object for the ratio marketShareVariables by using the query function and specifying the Variable name-value argument. Then display the first few rows.

    marketShareData = query(cs,Variable=marketShareVariables);
    head(marketShareData)
        CL_GEOGRAPHY     CL_SECTOR                  CL_VARIABLE                         CL_UNIT                 CL_SCENARIO           CL_YEAR    CL_VALUE 
        _____________    _________    _______________________________________    _____________________    ________________________    _______    _________
    
        Canada           National     Primary Energy | Bioenergy Market Share    Exajoules / Exajoules    Baseline (2019 policies)     2020      0.0067056
        Canada           National     Primary Energy | Bioenergy Market Share    Exajoules / Exajoules    Below 2°C immediate          2020      0.0067056
        Canada           National     Primary Energy | Bioenergy Market Share    Exajoules / Exajoules    Below 2°C delayed            2020      0.0067056
        Canada           National     Primary Energy | Bioenergy Market Share    Exajoules / Exajoules    Net-zero 2050 (1.5°C)        2020      0.0067056
        United States    National     Primary Energy | Bioenergy Market Share    Exajoules / Exajoules    Baseline (2019 policies)     2020       0.020199
        United States    National     Primary Energy | Bioenergy Market Share    Exajoules / Exajoules    Below 2°C immediate          2020       0.020199
        United States    National     Primary Energy | Bioenergy Market Share    Exajoules / Exajoules    Below 2°C delayed            2020       0.020199
        United States    National     Primary Energy | Bioenergy Market Share    Exajoules / Exajoules    Net-zero 2050 (1.5°C)        2020       0.020199
    

    Input Arguments

    collapse all

    Climate scenario object, specified as a climateScenario object.

    Numerators, specified as a string vector.

    Denominators, specified as a string vector.

    Note

    If numerators and denominators are both vectors, their lengths must be the same.

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: cs = divideVariables(cs,numerator,denominator,NewVariables=marketShareVariables) returns the new variable marketShareVariables that contains a ratio of the numerator and denominator variables.

    Region identifier values, specified as a string vector. By default, all the regions are returned if you do not specify a string vector for Region.

    Scenario identifier values, specified as a string vector. By default, all the scenarios are returned if you do not specify a string vector for Scenario.

    Year identifier values, specified as a numeric vector. By default, all the years are returned if you do not specify a numeric vector for Year.

    Names of ratio variables, specified as a string vector. The length of NewVariables must be max(length(numerator),length(denominator)).

    New units of the ratio variables, specified as a string vector. By default, the new units are derived from the numerator and denominator units. The length of NewUnits must be max(length(numerator),length(denominator)).

    Names of custom identifiers, specified as a string vector containing values of cs.CustomerIndentifiers. CustomIdentifers must match an identifier property contained in cs.CustomIdentifiers. For example, if "Sector" is a custom identifier for the property cs.CustomIdentifier, then cs = divideVariables(cs,"Primary Energy | Bioenergy","Primary Energy | Total",NewVariables="Primary Energy | Bioenergy Market Share",Sector="National") computes the market share of bioenergy by taking the ratio of bioenergy to total energy for the national sector.

    Version History

    Introduced in R2025a