Package {igoR}


Title: Access the Intergovernmental Organizations ('IGO') Database
Version: 1.0.3
Description: Provides tools for searching, extracting and recoding the Intergovernmental Organizations ('IGO') Database (version 3), distributed by the Correlates of War Project https://correlatesofwar.org/. Includes 'IGO'-year and country-year membership data, state system data and functions for deriving dyad-year joint membership results. For a description of the data, see Pevehouse, J. C. et al. (2020) <doi:10.1177/0022343319881175>.
License: GPL (≥ 3)
URL: https://dieghernan.github.io/igoR/, https://github.com/dieghernan/igoR
BugReports: https://github.com/dieghernan/igoR/issues
Depends: R (≥ 3.6.0)
Imports: stats
Suggests: countrycode (≥ 1.1.0), dplyr (≥ 1.0.2), ggplot2, knitr, quarto, testthat (≥ 3.0.0)
VignetteBuilder: quarto
Config/Needs/website: dieghernan/gitdevr, reactable, giscoR, devtools, remotes, cpp11, sessioninfo
Config/roxygen2/markdown: TRUE
Config/roxygen2/version: 8.0.0
Config/testthat/edition: 3
Config/testthat/parallel: true
Copyright: © 2000-2021 by the Correlates of War. See file COPYRIGHTS.
Encoding: UTF-8
LazyData: true
X-schema.org-keywords: r, igo, correlates-of-war, intergovernmental-organisations, cran, intergovernmental-organizations, r-package, rstats, cran-r
NeedsCompilation: no
Packaged: 2026-06-23 14:24:24 UTC; diego
Author: Diego Hernangómez ORCID iD [aut, cre, cph], The Correlates of War Project [cph] (for the data)
Maintainer: Diego Hernangómez <diego.hernangomezherrero@gmail.com>
Repository: CRAN
Date/Publication: 2026-06-24 07:40:31 UTC

igoR: Access the Intergovernmental Organizations ('IGO') Database

Description

logo

Provides tools for searching, extracting and recoding the Intergovernmental Organizations ('IGO') Database (version 3), distributed by the Correlates of War Project https://correlatesofwar.org/. Includes 'IGO'-year and country-year membership data, state system data and functions for deriving dyad-year joint membership results. For a description of the data, see Pevehouse, J. C. et al. (2020) doi:10.1177/0022343319881175.

Author(s)

Maintainer: Diego Hernangómez diego.hernangomezherrero@gmail.com (ORCID) [copyright holder]

Authors:

Other contributors:

References

Pevehouse, J. C., Nordstrom, T., McManus, R. W. & Jamison, A. S. (2020). Tracking organizations in the world: The Correlates of War IGO Version 3.0 data sets. Journal of Peace Research, 57(3), 492–503. doi:10.1177/0022343319881175.

See Also

Useful links:


Extract joint IGO membership for state pairs

Description

Creates dyad-year IGO data. Each row represents a pair of states in one year and summarizes their joint memberships across IGOs.

Usage

igo_dyadic(country1, country2, year = 1816:2014, ioname = NULL)

Arguments

country1, country2

A state or vector of states to compare. Each value can be any state name or code in states2016.

year

An integer or vector of years to assess.

ioname

An optional IGO identifier or vector of identifiers. If NULL (the default), all IGOs are included. Use igo_search() to find valid identifiers.

Details

The arguments country1 and country2 are named for compatibility with earlier versions of igoR. Values are matched against states in states2016.

This function reproduces the structure of the original dyad-year file distributed by the Correlates of War Project (dyadic_format3.dta). That file is not included in this package due to its size.

The result contains one row for each common year selected by country1, country2 and year.

The dyadid column identifies each relationship and is computed as (1000 * ccode1) + ccode2.

For each selected IGO, the result includes a column named after its lowercase identifier and uses this coding scheme:

Category Numerical value
No Joint Membership 0
Joint Full Membership 1
Missing data -9
State Not System Member -1

Use igo_recode_dyadic() to recode the numerical values as factors.

If one state in an IGO is a full member but the other is an associate member or observer, that IGO is not coded as a joint membership.

Value

A coded data.frame with one row per state pair and year and one column per selected IGO. See Details for the coding scheme.

Differences from the original data set

For some IGOs, results differ from the original data set in the coding of "Missing data" (-9) and "State Not System Member" (-1). The available documentation does not fully specify how to reproduce those values.

See Codebook Version 3 IGO Data.

Source

Codebook Version 3 IGO Data for the full reference.

References

Pevehouse, J. C., Nordstrom, T., McManus, R. W. & Jamison, A. S. (2020). Tracking organizations in the world: The Correlates of War IGO Version 3.0 data sets. Journal of Peace Research, 57(3), 492–503. doi:10.1177/0022343319881175.

See Also

state_year_format3, states2016, igo_search(), igo_recode_dyadic().

Other membership functions: igo_members(), igo_state_membership()

Examples

usa_esp <- igo_dyadic("USA", "Spain")
nrow(usa_esp)
ncol(usa_esp)

dplyr::tibble(usa_esp)

# Use custom arguments.
custom <- igo_dyadic(
  country1 = c("France", "Germany"), country2 = c("Sweden", "Austria"),
  year = 1992:1993, ioname = "EU"
)

dplyr::glimpse(custom)

Extract IGO membership records

Description

Extracts state-level membership records for one or more IGOs and years.

Usage

igo_members(ioname, year = NULL, status = "Full Membership")

Arguments

ioname

An IGO identifier or vector of identifiers from igo_year_format3. Use igo_search() to find valid identifiers.

year

An integer or vector of years to assess. If NULL, the latest available year for each IGO is used.

status

A character vector of membership statuses to extract. See state_year_format3 for valid statuses.

Value

A data.frame with one row per matching state, IGO, year and membership status.

Source

Codebook Version 3 IGO Data for the full reference.

References

Pevehouse, J. C., Nordstrom, T., McManus, R. W. & Jamison, A. S. (2020). Tracking organizations in the world: The Correlates of War IGO Version 3.0 data sets. Journal of Peace Research, 57(3), 492–503. doi:10.1177/0022343319881175.

See Also

igo_year_format3, igo_search(), state_year_format3.

Other membership functions: igo_dyadic(), igo_state_membership()

Examples

library(dplyr)
igo_members("EU", year = 1993) %>% as_tibble()
igo_members("EU") %>% as_tibble()
igo_members("NAFTA", year = c(1995:1998)) %>% as_tibble()

# Extract multiple membership statuses.
igo_members("ACCT", status = c("Associate Membership", "Observer")) %>%
  as_tibble()

# States that are not members of the UN.
igo_members("UN", status = "No Membership") %>%
  as_tibble()

# Vectorized search.
igo_members(c("NAFTA", "EU"), year = 1993) %>%
  as_tibble() %>%
  arrange(state)

# Use the countrycode package to add codes.
if (requireNamespace("countrycode", quietly = TRUE)) {
  library(countrycode)
  EU <- igo_members("EU")
  EU$iso3c <- countrycode(EU$ccode, origin = "cown", destination = "iso3c")

  EU$continent <- countrycode(EU$ccode,
    origin = "cown",
    destination = "continent"
  )

  tibble(EU)
}

Recode membership categories

Description

Converts the numerical membership codes in igo_year_format3, state_year_format3 and igo_dyadic() into factors. Use igo_recode_igoyear() with values from igo_year_format3, igo_recode_stateyear() with values from state_year_format3 and igo_recode_dyadic() with values from igo_dyadic().

Usage

igo_recode_igoyear(x)

igo_recode_stateyear(x)

igo_recode_dyadic(x)

Arguments

x

A numerical value or vector of values to recode.

Value

A factor with the recoded membership categories.

Examples

data("igo_year_format3")

# Recode memberships for some states.
library(dplyr)

samp <- igo_year_format3 %>%
  select(ioname:year, spain, france) %>%
  filter(year > 2000) %>%
  as_tibble()

glimpse(samp)

# Recode the membership columns.
samp %>%
  mutate(
    spain = igo_recode_igoyear(spain),
    france = igo_recode_igoyear(france)
  ) %>%
  glimpse()

Description

Searches for IGOs by name or regular expression.

Usage

igo_search(pattern = NULL, exact = FALSE)

Arguments

pattern

A regular expression used to match IGO names and identifiers. If NULL, all IGOs in igo_year_format3 are returned. Integer values are accepted.

exact

A logical value. If TRUE, pattern is anchored to require a complete match.

Details

The information for each IGO is retrieved from the latest year available in igo_year_format3.

The label column provides a cleaned version of longorgname.

Value

A data.frame with IGO identifiers, names, dates and other metadata from the latest available year for each IGO.

Source

Codebook Version 3 IGO Data for the full reference.

References

Pevehouse, J. C., Nordstrom, T., McManus, R. W. & Jamison, A. S. (2020). Tracking organizations in the world: The Correlates of War IGO Version 3.0 data sets. Journal of Peace Research, 57(3), 492–503. doi:10.1177/0022343319881175.

See Also

igo_year_format3.

Other query functions: igo_search_states()

Examples

# Return all values.
library(dplyr)
all <- igo_search()

all %>% tibble()

# Search by pattern.
igo_search("EU") %>%
  select(ionum:orgname) %>%
  tibble()

igo_search("EU", exact = TRUE) %>%
  select(ionum:orgname) %>%
  tibble()

# Search by numeric identifier.
igo_search(10) %>%
  select(ionum:orgname) %>%
  tibble()

igo_search(10, exact = TRUE) %>%
  select(ionum:orgname) %>%
  tibble()

# Search with a regular expression.
igo_search("NAFTA|UN|EU") %>%
  select(ionum:orgname) %>%
  tibble()

# Search for several exact identifiers.
igo_search("^NAFTA$|^UN$|^EU$") %>%
  select(ionum:orgname) %>%
  tibble()

Find state codes, abbreviations and names

Description

Finds Correlates of War codes, abbreviations and names for states.

Usage

igo_search_states(state)

Arguments

state

A state name or code, or a vector of names or codes, as specified in states2016.

Value

A data.frame with Correlates of War country codes, abbreviations, names and the matching state identifiers used by state_year_format3.

Source

Codebook Version 3 IGO Data for the full reference.

References

Pevehouse, J. C., Nordstrom, T., McManus, R. W. & Jamison, A. S. (2020). Tracking organizations in the world: The Correlates of War IGO Version 3.0 data sets. Journal of Peace Research, 57(3), 492–503. doi:10.1177/0022343319881175.

See Also

states2016.

Other query functions: igo_search()

Examples

library(dplyr)

igo_search_states("Spain") %>% as_tibble()

igo_search_states(c(20, 150)) %>% as_tibble()

igo_search_states("congo") %>% as_tibble()

igo_search_states(c("Germany", "papal states")) %>% as_tibble()

igo_search_states(c("FRN", "United Kingdom", 240, "italy")) %>% as_tibble()

Extract IGO membership records for states

Description

Extracts IGO membership records for one or more states and years.

Usage

igo_state_membership(state, year = NULL, status = "Full Membership")

Arguments

state

A state name or code, or a vector of names or codes, as specified in states2016.

year

An integer or vector of years to assess. If NULL, the latest available year for each state is used.

status

A character vector of membership statuses to extract. See igo_year_format3 for valid statuses.

Value

A data.frame with one row per matching state, year, IGO and membership status.

Source

Codebook Version 3 IGO Data for the full reference.

References

Pevehouse, J. C., Nordstrom, T., McManus, R. W. & Jamison, A. S. (2020). Tracking organizations in the world: The Correlates of War IGO Version 3.0 data sets. Journal of Peace Research, 57(3), 492–503. doi:10.1177/0022343319881175.

See Also

igo_year_format3, igo_search_states(), states2016.

Other membership functions: igo_dyadic(), igo_members()

Examples

# Memberships on two different dates.
igo_state_membership("Spain", year = 1850)
igo_state_membership("Spain", year = 1870)
igo_state_membership("Spain", year = 1880:1882)

# Use the latest available year.
igo_state_membership("ZAN")[, 1:7]

# Search by state code.
igo_state_membership("2", year = 1865)

# Extract multiple membership statuses.
igo_state_membership("kosovo", status = c(
  "Associate Membership", "Observer",
  "Full Membership"
))

# Vectorized search.
igo_state_membership(c("usa", "spain"), year = 1870:1871)

# Use the countrycode package to add codes.
if (requireNamespace("countrycode", quietly = TRUE)) {
  library(countrycode)
  IT <- igo_state_membership("Italy", year = 1880)
  IT$iso3c <- countrycode(IT$ccode, origin = "cown", destination = "iso3c")
  head(IT)
}

IGO-year membership data

Description

Data on intergovernmental organizations (IGOs) from 1816 to 2014 at the IGO-year level. Each row represents one IGO in one year. Years are recorded at five-year intervals through 1965 and annually thereafter.

Format

A data.frame with 19,335 rows. Relevant fields:

Details

Possible values for the status of a state in the IGO are:

Category Numerical value
No Membership 0
Full Membership 1
Associate Membership 2
Observer 3
Missing data -9
State Not System Member -1

Use igo_recode_igoyear() to recode the numerical values as factors.

Note

Data distributed with igoR.

Source

Intergovernmental Organizations (version 3), IGO Data Stata Files from the Correlates of War Project.

See the Codebook Version 3 IGO Data for the full reference.

References

Pevehouse, J. C., Nordstrom, T., McManus, R. W. & Jamison, A. S. (2020). Tracking organizations in the world: The Correlates of War IGO Version 3.0 data sets. Journal of Peace Research, 57(3), 492–503. doi:10.1177/0022343319881175.

See Also

Other data sets: state_year_format3, states2016

Examples

data("igo_year_format3")

# Show a glimpse.
library(dplyr)

igo_year_format3 %>%
  select(ioname:year, spain, france) %>%
  filter(year > 1990) %>%
  glimpse()

# Prepare a sample of numerical membership values.
sample_igo_year <- igo_year_format3 %>%
  as_tibble() %>%
  select(ioname:year, spain, france) %>%
  filter(year == 1990)

sample_igo_year %>% glimpse()

# Recode the membership columns.
sample_igo_year_recoded <- sample_igo_year %>%
  mutate(across(c(spain, france), igo_recode_igoyear))

sample_igo_year_recoded %>% glimpse()

Country-year IGO membership data

Description

Data on IGO membership from 1816 to 2014 at the country-year level. Each row represents one country in one year. Years are recorded at five-year intervals through 1965 and annually thereafter.

Format

A data.frame with 15,557 rows. Relevant fields:

Details

Possible values for the status of a state in the IGO are:

Category Numerical value
No Membership 0
Full Membership 1
Associate Membership 2
Observer 3
Missing data -9
IGO Not In Existence -1

Use igo_recode_stateyear() to recode the numerical values as factors.

See the Codebook Version 3 IGO Data.

Note

Data distributed with igoR.

Source

Intergovernmental Organizations (version 3), IGO Data Stata Files from the Correlates of War Project.

See the Codebook Version 3 IGO Data for the full reference.

References

Pevehouse, J. C., Nordstrom, T., McManus, R. W. & Jamison, A. S. (2020). Tracking organizations in the world: The Correlates of War IGO Version 3.0 data sets. Journal of Peace Research, 57(3), 492–503. doi:10.1177/0022343319881175.

See Also

countrycode::countrycode() to convert between different country code schemes.

Other data sets: igo_year_format3, states2016

Examples

data("state_year_format3")
dplyr::tibble(state_year_format3)

State system membership (v2016)

Description

A list of states with Correlates of War abbreviations and identifiers, plus the state field from state_year_format3.

Format

A data.frame with 243 rows. Relevant fields:

Details

This data set contains the states in the international system as updated and distributed by the Correlates of War Project.

It identifies states, their standard Correlates of War country code or state number, state abbreviations and dates of membership as states and major powers in the international system.

The Correlates of War Project includes a state in the international system from 1816 to 2016 according to the following criteria:

Note

The state variable was added to the original data to support comparisons across data sets in this package.

Source

State System Membership (v2016). The Correlates of War Project.

References

Correlates of War Project. 2017. "State System Membership List, v2016." Online, https://correlatesofwar.org/.

See Also

Other data sets: igo_year_format3, state_year_format3

Examples

data("states2016")
dplyr::glimpse(states2016)