Circular distance between two angles and circular dispersion of angles about a specified angle.
Usage
circular_distance(x, y, axial = TRUE, na.rm = TRUE)
circular_dispersion(
x,
y = NULL,
w = NULL,
w.y = NULL,
norm = FALSE,
axial = TRUE,
na.rm = TRUE
)
circular_distance_alt(x, y, axial = TRUE, na.rm = TRUE)
circular_dispersion_alt(
x,
y = NULL,
w = NULL,
w.y = NULL,
norm = FALSE,
axial = TRUE,
na.rm = TRUE
)
Arguments
- x, y
vectors of numeric values in degrees.
length(y)
is either1
orlength(x)
- axial
logical. Whether the data are axial, i.e. pi-periodical (
TRUE
, the default) or directional, i.e. \(2 \pi\)-periodical (FALSE
).- na.rm
logical. Whether
NA
values inx
should be stripped before the computation proceeds.- w, w.y
(optional) Weights. A vector of positive numbers and of the same length as
x
.w.y
is the (optional) weight ofy
.- norm
logical. Whether the dispersion should be normalized by the maximum possible angular difference.
Value
circular_distance
returns a numeric vector of positive numbers,
circular_dispersion
returns a positive number.
Details
circular_distance_alt()
and circular_dispersion_alt()
are the alternative
versions in Mardia and Jupp (2000), pp. 19-20.
The alternative dispersion has a minimum at the sample median.
References
Mardia, K.V. (1972). Statistics of Directional Data: Probability and Mathematical Statistics. London: Academic Press.
Mardia, K.V., and Jupp, P.E (1999). Directional Statistics, Wiley Series in Probability and Statistics. John Wiley & Sons, Inc., Hoboken, NJ, USA. doi:10.1002/9780470316979
Examples
a <- c(0, 2, 359, 6, 354)
circular_distance(a, 10) # distance to single value
#> [1] 0.030153690 0.019369152 0.036408073 0.004865966 0.075975952
b <- a + 90
circular_distance(a, b) # distance to multiple values
#> [1] 1 1 1 1 1
data("nuvel1")
PoR <- subset(nuvel1, nuvel1$plate.rot == "na")
sa.por <- PoR_shmax(san_andreas, PoR, "right")
circular_dispersion(sa.por$azi.PoR, y = 135)
#> [1] 0.1495228
circular_dispersion(sa.por$azi.PoR, y = 135, w = 1 / san_andreas$unc)
#> [1] 0.09858997