iotables

Importing and Manipulating Symmetric Input-Output Tables

https://github.com/ropengov/iotables

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.7%) to scientific vocabulary

Keywords

r r-package rstats
Last synced: 7 months ago · JSON representation

Repository

Importing and Manipulating Symmetric Input-Output Tables

Basic Info
Statistics
  • Stars: 22
  • Watchers: 8
  • Forks: 11
  • Open Issues: 18
  • Releases: 16
Topics
r r-package rstats
Created over 8 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Code of conduct Codemeta

README.Rmd

---
output:
  md_document:
    variant: gfm
---


```{r setupknitr, echo = FALSE, message=FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/"
  #fig.path = "README-"
)
```

# iotables 

```{r description, echo = FALSE}
version <- as.vector(read.dcf('DESCRIPTION')[, 'Version'])                
version <- gsub('-', '.', version)
```                                                                                                                         


![iotables](man/figures/logo20.png)
[![rOG-badge](https://ropengov.github.io/rogtemplate/reference/figures/ropengov-badge.svg)](https://ropengov.org/)
[![packageversion](https://img.shields.io/badge/Package%20version-`r version`-orange.svg?style=flat-square)](https://github.com/rOpenGov/iotables/commits/master)
[![Project Status: Active](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![R-CMD-check](https://github.com/rOpenGov/iotables/workflows/R-CMD-check/badge.svg)](https://github.com/rOpenGov/iotables/actions)
[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/iotables)](https://cran.r-project.org/package=iotables)
[![CRAN_time_from_release](https://www.r-pkg.org/badges/ago/iotables)](https://cran.r-project.org/package=iotables)
[![metacran downloads](https://cranlogs.r-pkg.org/badges/iotables)](https://cran.r-project.org/package=iotables)
[![DOI](https://doi.org/10.32614/CRAN.package.dataset.svg)](https://doi.org/10.5281/zenodo.10472240/)
[![license](https://img.shields.io/badge/license-MIT + file LICENSE-lightgrey.svg)](https://choosealicense.com/)
[![codecov](https://codecov.io/gh/rOpenGov/iotables/branch/master/graph/badge.svg)](https://app.codecov.io/gh/rOpenGov/iotables)
[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/github/rOpenGov/iotables?branch=master&svg=true)](https://ci.appveyor.com/project/rOpenGov/iotables)
[![dataobservatory](https://img.shields.io/badge/ecosystem-dataobservatory.eu-3EA135.svg)](https://dataobservatory.eu/)

The symmetric input-output tables (SIOTs) are complex statistical products that present inter-related statistics in a predefined structure. They are often found in spreadsheets that follow this structure or, in the case of Eurostat, in a data repository. In both cases in, reproducible research must be downloaded and restructured to a programmatically accessible form. Often, these highly structured statistics need to be analysed together with other data, for example, when calculating employment effects and multipliers. In this case, processing the employment data to SIOT conforming format is a significant preprocessing challenge.

The iotables are exactly designed for these tasks. Currently, the package downloads and processes standardized European SIOTs conforming to the latest statistical regulations, i.e. SIOTs starting from 2010.

The aim of this introduction is not to introduce input-output economics, or SIOTs in detail. The [Eurostat Manual of Supply, Use and Input-Output Tables](https://ec.europa.eu/eurostat/en/web/products-manuals-and-guidelines/-/KS-RA-07-013) and the [Eurostat thematic page](https://ec.europa.eu/eurostat/web/esa-supply-use-input-tables/overview) (for further reference: `Eurostat Manual`) in the documentation should be consulted for further information about the data and the metadata. 

To test the analytical functions of the package and to have a
manageable-sized example data set, we use real-life data from the
Eurostat manual. The `germany_1995` dataset is a simplified 6x6 sized
SIOT was taken from the `Eurostat Manual` (`p481`). The package function examples can be checked against [published results from Jörg Beutel](https://ec.europa.eu/eurostat/documents/3859598/5902113/KS-RA-07-013-EN.PDF/b0b3d71e-3930-4442-94be-70b36cea9b39?version=1.0).
These calculations can be followed in the [Introduction to iotables](https://iotables.dataobservatory.eu/articles/intro.html)
vignette.

The calculation of induced effects (Type-II multipliers) are following the [Input-Output Multipliers Specification Sheet and Supporting Material, Spicosa Project Report](https://web.archive.org/web/20220331124544/www.coastal-saf.eu/output-step/pdf/Specification%20sheet%20I_O_final.pdf). The analytical functions are tested against this example, too.

## Installation

You can install iotables 0.9.3 from CRAN or the latest 0.9.31 development version with github:

```{r gh-installation, eval = FALSE}
# From CRAN:
install.packages("iotables")

# From Github (development version)
devtools::install_github("rOpenGov/iotables")

#with vignettes:
#devtools::install_github("rOpenGov/iotables", build_vignettes = TRUE)
```

See also a long-form documentation (publication candidate) [iotables: an R Package for Reproducible Input-Output Economics Analysis, Economic and Environmental Impact Assessment with Empirical Data](https://zenodo.org/record/5887038#.Ye2ovv7MLIU) on Zenodo.

## Vignettes 

The [Introduction to iotables](https://iotables.dataobservatory.eu/articles/intro.html) vignette presents most of the examples of the [Eurostat Manual of Supply, Use and Input-Output Tables](https://ec.europa.eu/eurostat/documents/3859598/5902113/KS-RA-07-013-EN.PDF/b0b3d71e-3930-4442-94be-70b36cea9b39?version=1.0) (Eurostat Manual, Chapter 15.) This is a good introduction to understand what will the functions do, and to check that they work correctly.  From 0.9.9 it extended with the replication results from the [Handbook on Supply and Use Tables and Input-Output Tables with Extensions and Applications](https://unstats.un.org/unsd/nationalaccount/docs/SUT_IOT_HB_Final_Cover.pdf) published by the United Nations.

The `testthat` infrastructure of the package checks the proper working of the functions against the published results from the `Eurostat Manual`.

The [Working with Eurostat Data](https://iotables.dataobservatory.eu/articles/working_with_eurostat.html) vignette shows how you can download, pre-process and use real data from Eurostat.

The [United Kingdom Input-Output Analytical Tables 2010](https://webarchive.nationalarchives.gov.uk/20160114044923/http://www.ons.gov.uk/ons/rel/input-output/input-output-analytical-tables/2010/index.html) are used for testing the `iotables` package, because they are well-documented and detailed, organized data is available with them. These calculations can be followed in the [United Kingdom Input-Output Analytical Tables](https://iotables.dataobservatory.eu/articles/united_kingdom_2010.html) vignette.

## Acquiring data
Eurostat's data can be downloaded in several tidy, long-form, files, and a lot of filtering is needed to start working with it.

Currently the following Eurostat SIOTs can be used:

| Table type   | source code |                                                    
| :---        |    :----:    | 
| product x product SIOTs      |`naio_10_cp1700` or `naio_10_pyp1700`  |
| industry x industry SIOTs    | `naio_10_cp1750` or`naio_10_pyp1750`  |
| use tables at basic prices   | `naio_10_cp1620` or `naio_10_pyp1610` |
| trade and transport margins  | `naio_10_cp1620` or `naio_10_pyp1620` |
| net taxes less subsidies     | `naio_10_cp1630` or `naio_10_pyp1630` |
| Supply table at basic prices  | `naio_10_cp15`   |
| Use table at purchasers' price | `naio_10_cp16`  |

The `cp` element refers to basic prices and the `pyp` to previous years' prices.

### Contribute

Contributions are very welcome:

  * [Issue tracker](https://github.com/ropengov/iotables/issues) for feedback and bug reports.
  * [Pull requests](https://github.com/ropengov/iotables/)
  * [Github page](https://github.com/ropengov/iotables/)

### Acknowledgements

**Kindly cite this work** as follows: 

Daniel Antal. (2024. January 8.) rOpenGov/iotables: Importing and Manipulating Symmetric Input-Output Tables (Version 0.9.3). CRAN. [https://doi.org/10.5281/zenodo.10472240](https://zenodo.org/record/5153006/) for released version. 
Development version URL: [https://ropengov.github.io/iotables/](https://ropengov.github.io/iotables/)

Thanks to [\@KKulma](https://github.com/KKulma/) for setting up new and improved continuous integration, and [\@pitkant](https://github.com/pitkant) for implementing many good practices on improving the code. See [contributors](https://github.com/ropengov/iotables/graphs/contributors). This project is part of [rOpenGov](https://ropengov.org).


## Code of Conduct
  
Please note that the iotables project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/0/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.

Owner

  • Name: rOpenGov
  • Login: rOpenGov
  • Kind: organization
  • Location: Finland

Open government data analytics with R

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "iotables",
  "description": "Pre-processing and basic analytical tasks for working with Eurostat's symmetric inputoutput tables, and basic inputoutput economics calculations. Part of rOpenGov <https://ropengov.github.io/> for open source open government initiatives.",
  "name": "iotables: Reproducible InputOutput Economics Analysis, Economic and Environmental Impact Assessment with Empirical Data",
  "relatedLink": "https://iotables.dataobservatory.eu/",
  "codeRepository": "https://github.com/rOpenGov/iotables",
  "issueTracker": "https://github.com/rOpenGov/iotables/issues",
  "license": "https://spdx.org/licenses/MIT",
  "version": "0.9.4900",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.5.0 (2025-04-11 ucrt)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Daniel",
      "familyName": "Antal",
      "email": "daniel.antal@dataobservatory.eu",
      "@id": "https://orcid.org/0000-0001-7513-6760"
    }
  ],
  "contributor": [
    {
      "@type": "Person",
      "givenName": "Pyry",
      "familyName": "Kantanen",
      "@id": "https://orcid.org/0000-0003-2853-2765"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Daniel",
      "familyName": "Antal",
      "email": "daniel.antal@dataobservatory.eu",
      "@id": "https://orcid.org/0000-0001-7513-6760"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "covr",
      "name": "covr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=covr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "mockery",
      "name": "mockery",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=mockery"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "spelling",
      "name": "spelling",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=spelling"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "version": ">= 3.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 3.5.0"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "assertthat",
      "name": "assertthat",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=assertthat"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "dplyr",
      "name": "dplyr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=dplyr"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "eurostat",
      "name": "eurostat",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=eurostat"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "forcats",
      "name": "forcats",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=forcats"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "glue",
      "name": "glue",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=glue"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "httr2",
      "name": "httr2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=httr2"
    },
    "8": {
      "@type": "SoftwareApplication",
      "identifier": "kableExtra",
      "name": "kableExtra",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=kableExtra"
    },
    "9": {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    "10": {
      "@type": "SoftwareApplication",
      "identifier": "lubridate",
      "name": "lubridate",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=lubridate"
    },
    "11": {
      "@type": "SoftwareApplication",
      "identifier": "magrittr",
      "name": "magrittr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=magrittr"
    },
    "12": {
      "@type": "SoftwareApplication",
      "identifier": "readxl",
      "name": "readxl",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=readxl"
    },
    "13": {
      "@type": "SoftwareApplication",
      "identifier": "rlang",
      "name": "rlang",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rlang"
    },
    "14": {
      "@type": "SoftwareApplication",
      "identifier": "stats",
      "name": "stats"
    },
    "15": {
      "@type": "SoftwareApplication",
      "identifier": "tibble",
      "name": "tibble",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tibble"
    },
    "16": {
      "@type": "SoftwareApplication",
      "identifier": "tidyr",
      "name": "tidyr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyr"
    },
    "17": {
      "@type": "SoftwareApplication",
      "identifier": "tidyselect",
      "name": "tidyselect",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyselect"
    },
    "18": {
      "@type": "SoftwareApplication",
      "identifier": "utils",
      "name": "utils"
    },
    "SystemRequirements": null
  },
  "fileSize": "NAKB",
  "citation": [
    {
      "@type": "CreativeWork",
      "datePublished": "2025",
      "author": [
        {
          "@type": "Person",
          "givenName": "Daniel",
          "familyName": "Antal",
          "@id": "https://orcid.org/0000-0001-7513-6760"
        }
      ],
      "name": "Reproducible Input-Output Economics Analysis, Economic and Environmental Impact Assessment with Empirical Data",
      "identifier": "10.32614/CRAN.package.iotables",
      "url": "https://iotables.dataobservatory.eu/",
      "@id": "https://doi.org/10.32614/CRAN.package.iotables",
      "sameAs": "https://doi.org/10.32614/CRAN.package.iotables"
    }
  ]
}

GitHub Events

Total
  • Issues event: 5
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 1
  • Push event: 26
  • Pull request event: 4
  • Fork event: 2
  • Create event: 2
Last Year
  • Issues event: 5
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 1
  • Push event: 26
  • Pull request event: 4
  • Fork event: 2
  • Create event: 2

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 868
  • Total Committers: 6
  • Avg Commits per committer: 144.667
  • Development Distribution Score (DDS): 0.018
Past Year
  • Commits: 4
  • Committers: 1
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
antaldaniel a****l@g****m 852
pitkant p****n@g****m 6
Kasia k****a@g****m 6
Leo l****i@i****i 2
ajgmolina a****a@g****m 1
Diego H d****o@g****m 1
Committer Domains (Top 20 + Academic)
iki.fi: 1

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 25
  • Total pull requests: 9
  • Average time to close issues: 2 months
  • Average time to close pull requests: 9 days
  • Total issue authors: 5
  • Total pull request authors: 6
  • Average comments per issue: 1.84
  • Average comments per pull request: 0.78
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 5
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 5 minutes
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.2
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • antaldaniel (20)
  • giuliogcantone (2)
  • jennybc (1)
  • rafserqui (1)
  • LucaPavanIdea (1)
Pull Request Authors
  • antaldaniel (2)
  • pitkant (2)
  • KKulma (2)
  • antagomir (1)
  • ajgmolina (1)
  • dieghernan (1)
Top Labels
Issue Labels
enhancement (7) documentation (4) question (1) bug (1)
Pull Request Labels

Dependencies

.github/workflows/R-CMD-check.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/upload-artifact main composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
DESCRIPTION cran
  • R >= 3.5.0 depends
  • assertthat * imports
  • dplyr * imports
  • eurostat * imports
  • forcats * imports
  • glue * imports
  • kableExtra * imports
  • knitr * imports
  • lubridate * imports
  • magrittr * imports
  • plyr * imports
  • readxl * imports
  • rlang * imports
  • tibble * imports
  • tidyr * imports
  • tidyselect * imports
  • utils * imports
  • covr * suggests
  • rmarkdown * suggests
  • spelling * suggests
  • testthat * suggests
.github/workflows/rhub.yaml actions
  • r-hub/actions/checkout v1 composite
  • r-hub/actions/platform-info v1 composite
  • r-hub/actions/run-check v1 composite
  • r-hub/actions/setup v1 composite
  • r-hub/actions/setup-deps v1 composite
  • r-hub/actions/setup-r v1 composite