Learn R Programming

cshapes (version 0.4-2)

distmatrix: Compute distance matrices on the CShapes dataset

Description

This function computes a distance matrix for the given date. It selects all the active CShapes polygons, determines their distances and outputs a distance matrix in kilometers. The function can compute different types of distance matrices, specified by the "type" parameter: (i) capital distances, and (ii) centroid distances, and (iii) minimum distances between polygons. The latter computation is very expensive if polygons have many nodes. For that reason, the function simplifies the country polygons according to the Douglas-Peucker algorithm (http://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm), which eliminates points from the polygons and speeds up computation. The tolerance parameter specifies the tolerance for the simplification; a value of 0 disables it.

Usage

distmatrix(date, type="mindist", tolerance=0.1, useGW=T)

Arguments

date
The date for which the distance matrix should be computed. This argument must be of type Date and must be in the range 1/1/1946 - 30/6/2012.
type
Specifies the type of distance matrix: capdist for capital distances, centdist for centroid distances, and mindist for minimum distances.
useGW
Boolean argument specifying the system membership coding. TRUE (Default): Gleditsch and Ward (1999). FALSE: Correlates of War.
tolerance
Tolerance for polygon simplification according the the Douglas-Peucker algorithm. Only used for mindist computation (type="mindist").

Value

  • A quadratic weights matrix, with the row and column labels containing the country identifiers in the specified coding system (COW or G&W).

Examples

Run this code
# Compute a matrix of minimum distances 
# for the international system on 1/1/1946
# using the Correlates of War list and the default accuracy
wmat <- distmatrix(as.Date("1946-1-1"), type="capdist", tolerance=0.5, useGW=FALSE)

# For model estimation, our matrix should contain 
# the inverted distances
wmat <- 1/wmat

# Fix the values along the diagonale
diag(wmat) <- 0

Run the code above in your browser using DataLab