A package that can interpret GEMPACK-style TABLO models in R and solve them
install.packages('devtools')
devtools::install_git('https://github.com/mivanic/tabloToR.git')
model = tabloToR::GEModel$new()
# You need to have the model, such as gtap.tab
model$loadTablo('gtap.tab')
# You need to get the data files .har
data = list(
# The file with GTAP sets may alternatively be called sets.har by some data aggregation programs
gtapsets = HARr::read_har('gsdgset.har'),
# The file with GTAP parameters may alternatively be called default.prm by some data aggregation programs
gtapparm = HARr::read_har('gsdgpar.har'),
# The file with GTAPdata may alternatively be called basedata.har by some data aggregation programs
gtapdata = HARr::read_har('gsdgdat.har')
)
# Initialize the model object
model$loadData(data)
# Set up the closure
for(var in c("afall",
"afcom",
"afeall",
"afecom",
"afereg",
"afesec",
"afreg",
"afsec",
"ams",
"aoall",
"aoreg",
"aosec",
"atall",
"atd",
"atf",
"atm",
"ats",
"au",
"avaall",
"avareg",
"avasec",
"cgdslack",
"dpgov",
"dppriv",
"dpsave",
"endwslack",
"incomeslack",
"pfactwld",
"pop",
"profitslack",
"psaveslack",
"tf",
"tfd",
"tfm",
"tgd",
"tgm",
"tm",
"tms",
"to",
"tpd",
"tpm",
"tp",
"tradslack",
"tx",
"txs")){
model$variableValues[[var]][]=0
}
model$variableValues$qo[model$data$endw_comm,] = 0
# Specify sets for shocks
ag= c("grains", "v_f", "osd", "c_b", "pfb", "ocr", "ctl", "oap", "rmk", "wol")
model$variableValues$aoall[ag,c("northam")] = 1
agFood = c("grains", "v_f", "osd", "c_b", "pfb", "ocr", "ctl", "oap", "rmk", "wol", "food")
model$variableValues$tms[agFood,,c("northam")] = (model$data$viws[agFood,,c("northam")] / model$data$vims[agFood,,c("northam")] -1)*100
# Run the model
model$solveModel(iter = 3,steps = c(1,3))
# View the results (variable ev--welfare)
model$data$ev