circular.averaging calculates the average direction (0 - 360) given a vector of directions.

vector.averaging calculates the average distance and direction given a vector of directions and a vector of distances.

circular.averaging(direction, deg = TRUE)

vector.averaging(direction, distance, deg = TRUE)

Arguments

direction

a vector of directions given in degrees (0 - 360) if `deg == TRUE` or in radians if `deg == FALSE`

deg

a boolean object defining if `direction` is in degrees (`TRUE`) or radians (`FALSE`)

distance

a vector of distances associated with each direction

Value

circular.averaging returns the average direction while vector.averaging returns a list with 2 elements distance & direction

Details

functions return `NA` if the average distance or direction is not valid... e.g., when averaging directions of 0 & 180 degrees, the result could theoretically be 90 or 270 but is practically neither.

Note

This function was taken from the now archived, as of 08/03/2020, SDMtools.

Author

Jeremy VanDerWal jjvanderwal@gmail.com & Lorena Falconi lorefalconi@gmail.com

Examples


#EXAMPLE circular.averaging
circular.averaging(c(0,90,180,270)) #result is NA
#> [1] NA
circular.averaging(c(70,82,96,110,119,259))
#> [1] 99.68147

#EXAMPLE vector.averaging
vector.averaging(c(10,20,70,78,108), distance=10)
#> $distance
#> [1] 8.035995
#> 
#> $direction
#> [1] 57.38924
#> 
vector.averaging(c(159,220,258,273,310),distance=runif(5))
#> $distance
#> [1] 0.3009788
#> 
#> $direction
#> [1] 236.6898
#>