Performs a focal-scan sampling over a scanList object Internal.

focal_sample(
  scan.list,
  sampling = c("even", "random", "function"),
  all.sampled = TRUE
)

Arguments

scan.list

a scanList object

sampling

for method = "focal, users should input either:

  • a character scalar: for common sampling regimes:

    • "even": select focals as evenly as possible, and the extra scans uniformly

    • "random": uniform probability of choosing a focal at each scan

  • a user-defined function ("function"): a function of the adjacency matrix Adj (can be named anything) that returns a vector of the probabilities of choosing a focal node at each scan

  • WIP: more option to be added, like with the possibility to pass a focalList object directly

all.sampled

logical scalar, should all nodes be sampled at least once? (TO CHECK: does it work with group-scan sampling?)

Value

an empirical scanList object in which, compared to the theoretical.scanList (added to attrs), edges not involving the scan's focal are replaced by NAs (regardless of them being 0 or 1).

Returned scanList has new attributes added to attrs:

  • focalList: named integer vector representing the node's index (row/column) to be sampled for each scan. Names are obtain from the adjacency matrix Adj, the vector's length is equal

  • theoretical.scanList: the original theoretical scanList from which some edges have not been observed

See also