Analysis for pairwise combinations locations

pairwise(fun, samc, origin, dest)

# S4 method for function,samc,location,location
pairwise(fun, samc, origin, dest)

# S4 method for function,samc,location,missing
pairwise(fun, samc, origin)

## Arguments

fun

A samc analytical function with signature fun(samc, origin, dest)

samc

A samc-class object

origin

A vector of locations

dest

A vector of locations. Can be excluded to reuse the origin parameter

## Value

A 'long' format data.frame

## Details

When providing vector inputs for the origin and dest parameters to analytical functions, the package assumes that users are providing pairs of origin and dest. That is, origin[1] is paired with dest[1], origin[2] is paired dest[2], etc. Another way to think about it is that these two vector inputs can be treated as columns in the same dataframe. The result of the analytical function then is a vector of the same length as the input. This behavior works for any situation, so it is the default for the package.

However, some users may wish to run an analytical function for all the pairwise combinations of the values in the input vectors. That is, origin[1] is paired with dest[1],dest[2], dest[3], etc, before moving on to the next elements in origin. This approach has the advantage of potentially reducing the amount of code needed for an analysis, and the results can be represented as a pairwise matrix, but it is not suitable for all situations. To enable this second approach more easily, the pairwise() function runs all the combinations of the origin and dest parameters for an analytical function and returns the results in a 'long' format data.frame. This data.frame can then be reshaped into a pairwise matrix or 'wide' format data.frame using tools like the reshape2 or tidyr packages.

This function is not intended to be used with other inputs such as init or time

## Examples

library(samc)

res_data <- samc::example_split_corridor$res abs_data <- samc::example_split_corridor$abs

# Create samc-class object
samc_obj <- samc(res_data, abs_data,
model = list(fun = function(x) 1/mean(x), dir = 8, sym = TRUE))

# pairwise() example
pw <- pairwise(cond_passage, samc_obj, origin = 1:4, dest = 5)
print(pw)
#>   origin dest   result
#> 1      1    5 5402.175
#> 2      2    5 4642.001
#> 3      3    5 3600.117
#> 4      4    5 2249.220

# pairwise() example without dest
pw <- pairwise(dispersal, samc_obj, origin = c(2, 7))
print(pw)
#>   origin dest    result
#> 1      2    2 0.7908536
#> 2      7    2 0.6243287
#> 3      2    7 0.6052441
#> 4      7    7 0.7972468