Learn R Programming

cshapes (version 0.6)

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 - end of the dataset.

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
# NOT RUN {
# Compute a matrix of minimum distances 
# for the international system on 1/1/1946
# using the Correlates of War list and the default accuracy
# }
# NOT RUN {
wmat <- distmatrix(as.Date("1946-1-1"), type="capdist", tolerance=0.5, useGW=FALSE)
# }
# NOT RUN {
# For model estimation, our matrix should contain 
# the inverted distances
# }
# NOT RUN {
wmat <- 1/wmat
# }
# NOT RUN {
# Fix the values along the diagonale
# }
# NOT RUN {
diag(wmat) <- 0
# }

Run the code above in your browser using DataLab