Create panel data consisting of independent states in the international system.

state_panel(start, end, by = NULL, partial = "any", useGW = TRUE)

Arguments

start

Beginning date for data, see parse_date() for format options.

end

End date for data, see parse_date() for format options.

by

Temporal resolution, "year", "month", or "day". If NULL, inferred from start and end input format, e.g. start = 2006`` implies by = "year"`.

partial

Option for how to handle edge cases where a state is independent for only part of a time period (year, month, etc.). Options include "exact", "first", "last", and "any". See details.

useGW

Use Gleditsch & Ward statelist or Correlates of War state system membership list.

Value

A base::data.frame() with 2 columns for the country code and date information. The column names and types differ slightly based on the "useGW" and "by" arguments.

  • The first column will be "gwcode" if useGW = TRUE (the default), and "cowcode" otherwise.

  • The second column is an integer vector with name "year" for country-year data (if by or the inferred by value is "year"), and a base::Date() vector with the name "date" otherwise.

Details

The partial option determines how to handle instances where a country gains or loses independence during a time period specified in the by option:

  • "exact": the exact date in start is used for filtering

  • "any": a state-period is included if the state was independent at any point in that period.

  • "first": same as "exact" with the first date in a time period, e.g. "2006-01-01".

  • "last": last date in a period. For "yearly" data, this is the same as "exact" with a start date like "YYYY-12-21", but for calendar months the last date varies, hence the need for this option.

Examples

# Basic usage with full option set specified:
gwlist  <- state_panel("1991-01-01", "2015-01-01", by = "year",
                       partial = "any", useGW = TRUE)
head(gwlist, 3)
#>   gwcode year
#> 1      2 1991
#> 2      2 1992
#> 3      2 1993
cowlist <- state_panel("1991-01-01", "2015-01-01", by = "year",
                       partial = "any", useGW = FALSE)
head(cowlist, 3)
#>   cowcode year
#> 1       2 1991
#> 2       2 1992
#> 3       2 1993

# For yearly data, a proper date is not needed, and by = "year" and
# partial = "any" are inferred.
gwlist <- state_panel(1990, 1995)
sfind(265, list = "GW")
#>    list ccode code3c               country_name      start        end
#> 46   GW   265    GDR German Democratic Republic 1949-10-05 1990-10-02
#>    microstate
#> 46      FALSE
265 %in% gwlist$gwcode
#> [1] TRUE

# Partials
# Focus on South Sudan--is there a record for 2011, first year of indendence?
data(gwstates)
dplyr::filter(gwstates, gwcode==626)
#>   gwcode gwc country_name      start        end microstate
#> 1    626 SSD  South Sudan 2011-07-09 9999-12-31      FALSE

# No 2011 because SSD was not indpendent on January 1st 2011
x <- state_panel(2011, 2013, partial = "first")
dplyr::filter(x, gwcode==626)
#>   gwcode year
#> 1    626 2012
#> 2    626 2013

# Includes 2011 because 12-31 date is used for filtering
x <- state_panel("2011-12-31", "2013-12-31", by = "year", partial = "exact")
dplyr::filter(x, gwcode==626)
#>   gwcode year
#> 1    626 2011
#> 2    626 2012
#> 3    626 2013

# Includes 2011 because partial = "any"
x <- state_panel("2011-01-01", "2013-01-01", by = "year", partial = "any")
dplyr::filter(x, gwcode==626)
#>   gwcode year
#> 1    626 2011
#> 2    626 2012
#> 3    626 2013