Skip to content

Commit

Permalink
Merge pull request #73 from caviddhen/master
Browse files Browse the repository at this point in the history
Update to 2017 GDP Base Year
  • Loading branch information
deleip authored Sep 23, 2024
2 parents 3059901 + 48fc4df commit c444ba3
Show file tree
Hide file tree
Showing 82 changed files with 127 additions and 254 deletions.
2 changes: 1 addition & 1 deletion .buildlibrary
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ValidationKey: '42496614'
ValidationKey: '42576570'
AutocreateReadme: yes
AcceptedWarnings:
- 'Warning: package ''.*'' was built under R version'
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ cff-version: 1.2.0
message: If you use this software, please cite it using the metadata from this file.
type: software
title: 'magpie4: MAgPIE outputs R package for MAgPIE version 4.x'
version: 2.12.6
version: 2.13.0
date-released: '2024-09-23'
abstract: Common output routines for extracting results from the MAgPIE framework
(versions 4.x).
Expand Down
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Type: Package
Package: magpie4
Title: MAgPIE outputs R package for MAgPIE version 4.x
Version: 2.12.6
Version: 2.13.0
Date: 2024-09-23
Authors@R: c(
person("Benjamin Leon", "Bodirsky", , "[email protected]", role = c("aut", "cre")),
Expand Down
1 change: 0 additions & 1 deletion NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,6 @@ export(reportNitrogenBudgetPasture)
export(reportNitrogenEfficiencies)
export(reportNitrogenPollution)
export(reportOutputPerWorker)
export(reportOverallCosts)
export(reportPBbiosphere)
export(reportPBland)
export(reportPBnitrogen)
Expand Down
2 changes: 1 addition & 1 deletion R/AgGDP.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#' @param gdx GDX file
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation; "reg" (regional), "glo" (global), "regglo" (regional and global) or any other aggregation level defined in superAggregate
#' @return A MAgPIE object containing values related with overall value of production [million US$05]
#' @return A MAgPIE object containing values related with overall value of production [million US$17]
#' @author Edna Molina Bacca
#' @importFrom luscale superAggregate
#' @examples
Expand Down
2 changes: 1 addition & 1 deletion R/CostCapital.R
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#' @param type either capital stocks ("stocks") or overall capital investment "investment"
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation; "reg" (regional), "glo" (global), "regglo" (regional and global) or any other aggregation level defined in superAggregate
#' @return A MAgPIE object containing values related with overall value of production [million US$05]
#' @return A MAgPIE object containing values related with overall value of production [million US$17]
#' @author Edna Molina Bacca
#' @importFrom luscale superAggregate
#' @examples
Expand Down
2 changes: 1 addition & 1 deletion R/CostInputFactorsCrop.R
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#' the sticky realization.
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation
#' @return A MAgPIE object containing values related with overall value of production [million US$05]
#' @return A MAgPIE object containing values related with overall value of production [million US$17]
#' @author Edna Molina Bacca
#' @importFrom luscale superAggregate
#' @importFrom magpiesets findset
Expand Down
2 changes: 1 addition & 1 deletion R/CostOverall.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#' @param gdx GDX file
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation; "reg" (regional), "glo" (global), "regglo" (regional and global) or any other aggregation level defined in superAggregate
#' @return A MAgPIE object containing values related with overall value of production [million US$05]
#' @return A MAgPIE object containing values related with overall value of production [million US$17]
#' @author Edna Molina Bacca
#' @importFrom luscale superAggregate
#' @examples
Expand Down
2 changes: 1 addition & 1 deletion R/CostTC.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#' @param gdx GDX file
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation; "reg" (regional), "glo" (global), "regglo" (regional and global) or any other aggregation level defined in superAggregate
#' @return A MAgPIE object containing values related with overall value of production [million US$05]
#' @return A MAgPIE object containing values related with overall value of production [million US$17]
#' @author David Chen
#' @importFrom luscale superAggregate
#' @examples
Expand Down
2 changes: 1 addition & 1 deletion R/CostTransport.R
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation; "reg" (regional), "glo" (global), "regglo" (regional and global) or any other aggregation level defined in superAggregate
#' @param sum total costs (TRUE) or detailed costs (FALSE)
#' @return A MAgPIE object containing the transport costs [million US$05]
#' @return A MAgPIE object containing the transport costs [million US$17]
#' @author David Chen
#' @importFrom magclass dimSums
#' @importFrom luscale superAggregate
Expand Down
2 changes: 1 addition & 1 deletion R/CostsAEI.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#' @param gdx GDX file
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation ("reg", "glo", "regglo")
#' @return MAgPIE object containing costs for AEI [million US$05]
#' @return MAgPIE object containing costs for AEI [million US$17]
#'
#' @author Felicitas Beier
#'
Expand Down
2 changes: 1 addition & 1 deletion R/CostsFertilizer.R
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation ("reg", "glo", "regglo")
#' @param disagg whether costs should be disaggregated into the different crop types
#' @return MAgPIE object containing fertilizer costs [million US$05]
#' @return MAgPIE object containing fertilizer costs [million US$17]
#' @author Debbora Leip
#' @importFrom magclass dimSums
#' @importFrom luscale superAggregate
Expand Down
5 changes: 3 additions & 2 deletions R/CostsWithoutIncentives.R
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
#' @title CostsWithoutIncentives
#' @description calculates agricultural costs without taxes and incentives (i.e. GHG taxes and BII incentives)
#' @description calculates agricultural costs without taxes, incentives and technical penalty costs (i.e. GHG taxes and BII incentives)
#'
#' @export
#'
#' @param gdx GDX file
#' @param file a file name the output should be written to using write.magpie
#' @param level aggregation level, reg, glo or regglo
#' @return A MAgPIE object containing the costs without taxes, incentives and technical penalty costs [million US$17]
#' @author David M Chen

#' @examples
Expand Down Expand Up @@ -76,7 +77,7 @@ CostsWithoutIncentives <- function(gdx, file = NULL, level = "regglo") {

# peatland costs without slack are in v58_peatland_cost in realization "on"
peatlandCosts <- readGDX(gdx, "ov58_peatland_cost", select = list(type = "level"), react = "silent")
# v58_peatland_cost does not exist in realization "v2" because there is no slack variable
# v58_peatland_cost does not exist in realization "v2"
if(is.null(peatlandCosts)) peatlandCosts <- readGDX(gdx, "ov_peatland_cost", select = list(type = "level"), react = "silent")
totCosts <- add_columns(totCosts, addnm = "Peatland", dim = 3.1, fill = 0)

Expand Down
2 changes: 1 addition & 1 deletion R/PriceGHG.R
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation; "reg" (regional), "glo" (global), "regglo" (regional and global) or any other aggregation level defined in superAggregate
#' @param aggr aggregation used for global value; "max" (maxium value accross regions) or "weight" (weighted by population)
#' @return GHG emission prices as MAgPIE object (US$2005/tCO2, US$2005/tN2O, US$2005/tCH4)
#' @return GHG emission prices as MAgPIE object (US$2017/tCO2, US$2017/tN2O, US$2017/tCH4)
#' @author Florian Humpenoeder, Amsalu W. Yalew
#' @importFrom luscale superAggregate
#' @seealso \code{\link{reportPriceGHG}}
Expand Down
2 changes: 1 addition & 1 deletion R/costs.R
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#' any other aggregation level defined in superAggregate
#' @param sum total costs (TRUE) or detailed costs (FALSE)
#' @param type either "annuity" (as it enters the objetive function) or "investment" (investment)
#' @return A MAgPIE object containing the goal function costs including investments [million US$05]
#' @return A MAgPIE object containing the goal function costs including investments [million US$17]
#' @author Jan Philipp Dietrich, Markus Bonsch, Misko Stevanovic, Florian Humpenoeder,
#' Edna J. Molina Bacca, Michael Crawford
#' @importFrom magclass mbind dimSums collapseNames
Expand Down
2 changes: 1 addition & 1 deletion R/costsMACCS.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#' @param gdx GDX file
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation ("reg", "glo", "regglo")
#' @return MAgPIE object containing mitigation costs [million US$05]
#' @return MAgPIE object containing mitigation costs [million US$17]
#' @author Debbora Leip
#' @importFrom magclass dimSums
#' @importFrom luscale superAggregate
Expand Down
2 changes: 1 addition & 1 deletion R/costsPresolve.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#' @param gdx GDX file
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation; "reg" (regional), "glo" (global), "regglo" (regional and global) or any other aggregation level defined in superAggregate
#' @return A MAgPIE object containing the goal function costs in presolve mode [million US$05]
#' @return A MAgPIE object containing the goal function costs in presolve mode [million US$17]
#' @details Presolve is without bioenergy demand. Hence costs from a MAgPIE run with bioenergy demand minus costs from presolve reflect costs that can be attributed to bioenergy production
#' @author Florian Humpenoeder
#' @examples
Expand Down
2 changes: 1 addition & 1 deletion R/costsProductionCrops.R
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#' @param type Type of reporting, either "annuity" or total "investments"
#' @param dir directory with mapping for disaggregation to higher resolutions
#' @return A MAgPIE object containing values related with costs for crops production
#' per ton produced [million US$05/tDM]
#' per ton produced [million US$17/tDM]
#' @author Edna Molina Bacca
#' @importFrom magclass mbind dimSums collapseNames
#' @importFrom magpiesets findset
Expand Down
2 changes: 1 addition & 1 deletion R/costsWholesale.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation; "reg" (regional), "glo" (global),
#' "regglo" (regional and global) or any other aggregation level defined in superAggregate
#' @return A MAgPIE object containing values related with costs wholesale trade [million US$05/tDM]
#' @return A MAgPIE object containing values related with costs wholesale trade [million US$17/tDM]
#' @author David M Chen
#' @importFrom luscale superAggregate
#' @examples
Expand Down
2 changes: 1 addition & 1 deletion R/factorCosts.R
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#' "kli", "kres", "fish", or "pasture")
#' @param file a file name the output should be written to using write.magpie
#' @param level Level of regional aggregation ("reg", "glo", "regglo")
#' @return MAgPIE object containing factor costs [million US$05]
#' @return MAgPIE object containing factor costs [million US$17]
#' @author Debbora Leip
#' @importFrom magclass add_dimension getNames mbind
#' @importFrom luscale superAggregate
Expand Down
38 changes: 19 additions & 19 deletions R/getReportFSECCosts.R
Original file line number Diff line number Diff line change
Expand Up @@ -25,31 +25,31 @@ getReportFSECCosts <- function(gdx, reportOutputDir = NULL, scenario = NULL) {
costs <- reportCostsAccounting(gdx = gdx)

# Costs relevant to the FSEC context
costs <- costs[, , c("Costs Accounting|+|Land Conversion (million US$05/yr)",
"Costs Accounting|+|Transport (million US$05/yr)",
"Costs Accounting|+|N Fertilizer (million US$05/yr)",
"Costs Accounting|+|P Fertilizer (million US$05/yr)",
"Costs Accounting|+|MACCS (million US$05/yr)",
"Costs Accounting|+|AEI (million US$05/yr)",
"Costs Accounting|+|Trade (million US$05/yr)",
"Costs Accounting|+|Timber production (million US$05/yr)",
"Costs Accounting|+|Processing (million US$05/yr)",
"Costs Accounting|+|Reward for producing bioenergy (million US$05/yr)",
"Costs Accounting|+|Substitution processing (million US$05/yr)",
"Costs Accounting|+|Punishment cost for additionally transported monogastric livst_egg (million US$05/yr)",
"Costs Accounting|+|Land transition matrix (million US$05/yr)",
"Costs Accounting|+|Timber harvest natveg (million US$05/yr)",
"Costs Accounting|+|Input Factors (million US$05/yr)",
"Costs Accounting|+|Peatland (million US$05/yr)",
"Costs Accounting|+|Forestry (million US$05/yr)",
"Costs Accounting|+|TC (million US$05/yr)")]
costs <- costs[, , c("Costs Accounting|+|Land Conversion (million US$2017/yr)",
"Costs Accounting|+|Transport (million US$2017/yr)",
"Costs Accounting|+|N Fertilizer (million US$2017/yr)",
"Costs Accounting|+|P Fertilizer (million US$2017/yr)",
"Costs Accounting|+|MACCS (million US$2017/yr)",
"Costs Accounting|+|AEI (million US$2017/yr)",
"Costs Accounting|+|Trade (million US$2017/yr)",
"Costs Accounting|+|Timber production (million US$2017/yr)",
"Costs Accounting|+|Processing (million US$2017/yr)",
"Costs Accounting|+|Reward for producing bioenergy (million US$2017/yr)",
"Costs Accounting|+|Substitution processing (million US$2017/yr)",
"Costs Accounting|+|Punishment cost for additionally transported monogastric livst_egg (million US$2017/yr)",
"Costs Accounting|+|Land transition matrix (million US$2017/yr)",
"Costs Accounting|+|Timber harvest natveg (million US$2017/yr)",
"Costs Accounting|+|Input Factors (million US$2017/yr)",
"Costs Accounting|+|Peatland (million US$2017/yr)",
"Costs Accounting|+|Forestry (million US$2017/yr)",
"Costs Accounting|+|TC (million US$2017/yr)")]

costs <- dimSums(costs, dim = 3)

costs <- as.data.frame(costs) %>%
dplyr::select(.data$Region, .data$Year, .data$Value) %>%
dplyr::mutate(Value = round(.data$Value, digits = 2)) %>%
dplyr::rename(`Costs (million US$05/yr)` = .data$Value)
dplyr::rename(`Costs (million US$2017/yr)` = .data$Value)

if (!is.null(reportOutputDir) & !is.null(scenario)) {
write.csv(costs,
Expand Down
2 changes: 1 addition & 1 deletion R/getReportFSECSimonDietz.R
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ getReportFSECSimonDietz <- function(magpieOutputDir, reportOutputDir = NULL, sce

# aggregate GDP over countries from poverty model
povertyGDP <- as.data.frame(GDP[presentCountries, c(2020, 2050), ]) %>%
mutate(Unit = "constant 2005 Int$PPP") %>%
mutate(Unit = "constant 2017 Int$PPP") %>%
select(.data$Region, .data$Year, .data$Unit, .data$Value)

colnames(povertyGDP) <- c("ISO", "Year", "Unit", "Value")
Expand Down
2 changes: 1 addition & 1 deletion R/getReportFableScenathon.R
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
getReportFableScenathon <- function(gdx, file = NULL, iso = NULL) {

# Income ------------------------------------------------------------------
GDP <- reportIncome(gdx)[iso,,"Total income (million US$05 PPP/yr)"]
GDP <- reportIncome(gdx)[iso,,"Total income (million US$2017 PPP/yr)"]
GDP <- setNames(GDP, "GPD")


Expand Down
2 changes: 1 addition & 1 deletion R/income.R
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#' TRUE is using the endogeenous real income that takes into account food price change on real income
#' @return annual income as MAgPIE object
#' (unit depends on per_capita:
#' US$2005 MER/cap/yr (TRUE), US$2005 MER/yr (FALSE))
#' US$2017 MER/cap/yr (TRUE), US$2017 MER/yr (FALSE))
#' @author Florian Humpenoeder, Benjamin Bodirsky, Felicitas Beier
#' @importFrom magclass colSums mbind
#' @examples
Expand Down
2 changes: 1 addition & 1 deletion R/laborCosts.R
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#' use factorCosts())
#' @param dir for gridded outputs: magpie output directory which contains
#' a mapping file (rds) for disaggregation
#' @return MAgPIE object containing labor costs [million US$05]
#' @return MAgPIE object containing labor costs [million US$17]
#' @author Debbora Leip
#' @importFrom magclass add_dimension getNames mbind
#' @importFrom luscale superAggregate
Expand Down
2 changes: 1 addition & 1 deletion R/land_price.R
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#' @param absolute Should the absolute value of all the marginals be taken into calculations? \code{TRUE} (default) of \code{FALSE}. See Details.
#' @param digits rounding accuracy for the output
#' @details The land price is obtained through marginals of the "oq_cropland" constraint. The majority of these marginals are negative values, and a negligible number of them are positive. This is the consequence of the constraint binding either on upper or lower level. The parameter \code{ignore_lowbound} removes all the positive marginals from land price calculation (negligible), and parameter \code{absolute} transforms them into negative values (to be all together reported as positive values at the final calculation).
#' @return A MAgPIE object containing the land shadow prices (US$05/ha).
#' @return A MAgPIE object containing the land shadow prices (US$2017/ha).
#' @author Markus Bonsch, Misko Stevanovic
#' @examples
#'
Expand Down
2 changes: 1 addition & 1 deletion R/reportAgGDP.R
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@
reportAgGDP <- function(gdx) {
# Value added Agricultural GDP
x <- AgGDP(gdx, level = "regglo")
getNames(x) <- "Value|Agriculture GDP (million US$05/yr)"
getNames(x) <- "Value|Agriculture GDP (million US$2017/yr)"
return(x)
}
2 changes: 1 addition & 1 deletion R/reportConsumVal.R
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ reportConsumVal <- function(gdx) {
# Consumption value calculation
x <- consumptionValue(gdx, level = "regglo")

getNames(x) <- "Value|Consumption Value (million US$05/yr)"
getNames(x) <- "Value|Consumption Value (million US$2017/yr)"


return(x)
Expand Down
2 changes: 1 addition & 1 deletion R/reportCostCapitalInvestment.R
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ reportCostCapitalInvestment <- function(gdx) {
message("Info only available for sticky cost implementation")
return(NULL)
}
getNames(x) <- "Costs|Capital Investments (million US$05)"
getNames(x) <- "Costs|Capital Investments (million US$2017)"
return(x)
}
2 changes: 1 addition & 1 deletion R/reportCostCapitalStocks.R
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ reportCostCapitalStocks <- function(gdx) {
message("Info only available for sticky cost implementation")
return(NULL)
}
getNames(x) <- "Costs|Capital Stocks (million US$05)"
getNames(x) <- "Costs|Capital Stocks (million US$2017)"
return(x)
}
2 changes: 1 addition & 1 deletion R/reportCostInputsCrop.R
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ reportCostInputsCrop <- function(gdx) {

}

getNames(out) <- "Costs|Inputs for crops (million US$05/yr)"
getNames(out) <- "Costs|Inputs for crops (million US$2017/yr)"


return(out)
Expand Down
2 changes: 1 addition & 1 deletion R/reportCostOverall.R
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ reportCostOverall<-function(gdx){
getNames(x)<-"Costs|Gross value of production"


getNames(x) <- paste0(getNames(x)," (million US$05/yr)")
getNames(x) <- paste0(getNames(x)," (million US$2017/yr)")

return(x)

Expand Down
2 changes: 1 addition & 1 deletion R/reportCostTC.R
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@
#'
reportCostTC <- function(gdx) {
tcCost <- CostTC(gdx, level = "regglo")
getNames(tcCost) <- "Costs|TC (million US$05/yr)"
getNames(tcCost) <- "Costs|TC (million US$2017/yr)"
return(tcCost)
}
2 changes: 1 addition & 1 deletion R/reportCostTransport.R
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ a <- CostTransport(gdx,level = "regglo",sum = FALSE)
a <- reporthelper(a, dim=3.1, level_zero_name = "Costs|Transport", detail=FALSE)
a <- summationhelper(a)

getNames(a) <- paste0(getNames(a)," (million US$05/yr)")
getNames(a) <- paste0(getNames(a)," (million US$2017/yr)")


return(a)
Expand Down
2 changes: 1 addition & 1 deletion R/reportCosts.R
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ reportCosts<-function(gdx){
x <- mbind(x,a)
x <- mbind(x,setNames(dimSums(a[,,c("Costs|GHG Emissions","Costs|Reward for Afforestation"),invert=TRUE],dim=3),"Costs|MainSolve w/o GHG Emissions"))

getNames(x) <- paste0(getNames(x)," (million US$05/yr)")
getNames(x) <- paste0(getNames(x)," (million US$2017/yr)")

return(x)
}
2 changes: 1 addition & 1 deletion R/reportCostsAEI.R
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ reportCostsAEI <- function(gdx) {
AEI_costs <- CostsAEI(gdx, level = "regglo")

getNames(AEI_costs)<-"Costs|AEI"
getNames(AEI_costs) <- paste0(getNames(AEI_costs)," (million US$05/yr)")
getNames(AEI_costs) <- paste0(getNames(AEI_costs)," (million US$2017/yr)")

return(AEI_costs)
}
4 changes: 2 additions & 2 deletions R/reportCostsAccounting.R
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
reportCostsAccounting <- function(gdx) {

a <- costs(gdx, level = "regglo", type = "investment", sum = FALSE)
getNames(a) <- paste0("Costs Accounting|", getNames(a), " (million US$05/yr)")
getNames(a) <- paste0("Costs Accounting|", getNames(a), " (million US$2017/yr)")
a <- summationhelper(x = a, sep = "+")

x <- NULL
x <- mbind(x, setNames(dimSums(a, dim = 3), paste0("Costs Accounting (million US$05/yr)")))
x <- mbind(x, setNames(dimSums(a, dim = 3), paste0("Costs Accounting (million US$2017/yr)")))
x <- mbind(x, a)


Expand Down
Loading

0 comments on commit c444ba3

Please sign in to comment.