save_har()
function fully supports writing
.HAR
files with no size restrictions, allowing up to seven
dimensions and approximately two million elements per chunk.shock_calculate_uniform()
and
shock_calculate()
to compute and export shock
results directly into GEMPACK-compatible .HAR
files, supporting dynamic multi-period calculations (e.g.,
ONEY
, TWOY
, THRY
, etc.) for
recursive-dynamic simulations.HARplus is an R package designed to process and analyze .HAR and .SL4 files, making it easier for GEMPACK users and GTAP model researchers to handle large economic datasets. It simplifies the management of multiple experiment results, enabling faster and more efficient comparisons without complexity.
With HARplus, users can extract, restructure, and merge data seamlessly, ensuring compatibility across different tools. The processed data can be exported and used in R, Stata, Python, Julia, or any software that supports .txt, CSV, or Excel formats.
.HAR
and .SL4
files.save_har()
for exporting datasets to GEMPACK
.HAR
format with full binary compliance..HAR
and .SL4
files while offering
additional flexibility.HARplus simplifies .HAR
and .SL4
file
processing. You can: - Load files and selectively extract headers. -
Extract data by variable name or dimension patterns. - Group, merge, and
restructure data with ease. - Pivot and export data into structured
formats. - Filter subtotals and rename dimensions for clarity.
HARplus (version 1.0.1) can be installed directly in R using:
install.packages("HARplus")
While the latest HARplus (version 1.1.2) can be installed from my GitHub using:
::install_github("Bodysbobb/HARplus") devtools
All commands in this package have several options that allow users to play around with the data more freely and efficiently, not just import and get the data. For a complete guide on HARplus functions, check out the Vignette or GitHub Vignette
Below is a categorized reference of the main functions in HARplus:
load_harx()
– Loads .HAR
files with selective header extraction and structured metadata.load_sl4x()
– Loads .SL4
files, extracting variable names and dimension structures.get_data_by_var()
– Extracts specific
variables from .HAR
or .SL4
datasets,
supporting subtotal filtering and merging.get_data_by_dims()
– Extracts data
based on dimension patterns, with options for merging and subtotal
filtering.get_dim_elements()
– Lists unique
dimension elements (e.g., REG
, COMM
).get_dim_patterns()
– Extracts unique
dimension structures (e.g., REG*COMM*ACTS
).get_var_structure()
– Summarizes
variable names, dimensions, and data structure.compare_var_structure()
– Compares
variable structures across multiple datasets for compatibility.group_data_by_dims()
– Groups
extracted data by dimension priority, with support for automatic
renaming and subtotal handling.rename_dims()
– Renames dimension
names for consistency.pivot_data()
– Converts long-format
data into wide format.pivot_data_hierarchy()
– Creates
hierarchical pivot tables for structured reporting.export_data()
– Exports extracted data
to CSV, Stata, TXT, RDS, or XLSX, with support for multi-sheet
exports.save_har()
– Saves processed data
frames or arrays into GEMPACK-compatible .HAR
files,
automatically generating 1C set headers and supporting up to seven
dimensions.REG
,
COMM
, ENDW
)export_sets = TRUE
COMMxREGxREG
) during exportThese functions provide a complete workflow to calculate,
structure, and export GEMPACK-compatible shock files directly
from .HAR
, .SL4
, .CSV
, or
.XLSX
datasets—eliminating the need for manual conversion
when preparing dynamic simulation shocks.
shock_calculate_uniform()
– Calculates
uniform percentage shocks across all base rates and exports
directly to GEMPACK .HAR
format. Supports additive
(+
, -
) and multiplicative (*
,
/
) adjustments.shock_calculate()
– Computes
target-based shocks by comparing initial and target datasets,
automatically exporting the resulting shocks to
.HAR
files with dynamic timeline headers (e.g.,
ONEY
, TWOY
, THRY
, etc.).create_initial_config()
,
create_target_config()
, and
create_calc_config()
– Define input
sources, column mappings, and timeline periods for use in both uniform
and target-based shock calculations.HARplus is released under the MIT License. See the full license.
Author:
Pattawee Puangchit
Ph.D. Candidate, Agricultural Economics
Purdue University
Research Assistant at GTAP
Acknowledgement is due to Maros Ivanic for his work
on the HARr
package, which served as the foundation for
HARplus. This package would not have been possible without his
contributions.
I have developed another package specifically for visualization, particularly for GTAP users: GTAPViz
Sample data used in this vignette is obtained from the GTAPv7 model and utilizes publicly available data from the GTAP 9 database. For more details about the GTAP database and model, refer to the GTAP Database.