Learn R Programming

secr (version 4.6.9)

clone: Replicate Rows

Description

Clone rows of an object a constant or random number of times

Usage

# S3 method for default
clone(object, type, ...)
  # S3 method for popn
clone(object, type, ...)
  # S3 method for capthist
clone(object, type, ...)

Value

Object of same class as object but with varying number of rows. For clone.popn and capthist an attribute `freq' is set, a vector of length equal to the original number of rows giving the number of repeats (including zeros).

If popn or capthist is a multi-session object the returned value will be a multi-session object of the same length.

Arguments

object

any object

type

character `constant', `poisson', `truncatedpoisson' or `nbinom'

...

other arguments for distribution function

Details

The ... argument specifies the number of times each row should be repeated. For random distributions (Poisson or negative binomial) ... provides the required parameter values: lambda for Poisson, size, prob or size, mu for negative binomial.

One application is to derive a population of cues from a popn object, where each animal in the original popn generates a number of cues from the same point.

Cloning a capthist object replicates whole detection histories. Individual covariates and detection-specific attributes (e.g., signal strength or xy location in polygon) are also replicated. Cloned data from single-catch traps will cause verify() to fail, but a model may still be fitted in secr.fit by overriding the check with verify = FALSE.

See Also

sim.popn

Examples

Run this code

## population of animals at 1 / hectare generates random
## Poisson number of cues, lambda = 5
mics4 <- make.grid( nx = 2, ny = 2, spacing = 44, detector = "signal")
pop <- sim.popn (D = 1, core = mics4, buffer = 300, nsessions = 6)
pop <- clone (pop, "poisson", 5)
attr(pop[[1]],"freq")

clone(captdata, "poisson", 3)

# To avoid losing any individuals use zero-truncated Poisson
# First find lambda of truncated Poisson with given mean
getlambda <- function (target) {
    fn <- function(x) x / (1-exp(-x)) - target
    uniroot(interval = c(1e-8, target), f = fn)$root
}
clone(captdata, "truncatedpoisson", getlambda(3))

Run the code above in your browser using DataLab