Learn R Programming

adehabitat (version 1.8.20)

sliwinltr: Apply a Function on an Object of Class "ltraj", Using a Sliding Window

Description

This function applies a function on an object of class "ltraj", using a sliding window.

Usage

sliwinltr(ltraj, fun, step, type = c("locs", "time"),
          units = c("sec", "min", "hour", "day"),
          plotit = TRUE, …)

Arguments

ltraj

an object of class ltraj

fun

the function to be applied, implying at least one of the descriptive parameters in the object of class ltraj (see below)

step

the half-width of the sliding window. If type=="locs", it is a number of relocations. If type=="time" it is a number described by units

type

character string. If type == "locs", step describes a number of relocations: if type == "time", step describes a time lag.

units

if type == "time", the time units described by step. Ignored otherwise

plotit

logical. Whether the result should be plotted

additional arguments to be passed to the function rec

Value

If type=="locs", a list with one component per burst of relocation containing the smoothed values for each relocation.

If type=="locs", a list with one component per burst of relocation. Each component is a data frame containing the time and the corresponding smoothed values for each date.

Details

An object of class ltraj is a list with one component per burst of relocations. The function fun is applied to each burst of relocations. This burst of relocations should be refered as x in fun. For example, to compute the mean of the distance between successive relocations, the function fun is equal to function(x) mean(x$dist).

Do not forget that some of the descriptive parameters in the object ltraj may contain missing values (see help(ltraj)). The function should therefore specify how to manage these missing values.

See Also

ltraj for additional information about objects of class ltraj

Examples

Run this code
# NOT RUN {
data(capreotf)

## computes the average speed of the roe deer in a moving window of width
## equal to 60 minutes
toto <- sliwinltr(capreotf, function(x) mean(x$dist/x$dt, na.rm = TRUE),
                  step = 30, type = "time", units = "min")

## zoom before the peak
head(toto[[1]])
plot(toto[[1]][1:538,], ty="l")

# }

Run the code above in your browser using DataLab