Skip to contents

Resample 3-axial input signal to a specific sampling rate

Usage

acti_resample(data, sample_rate, method = "linear", ...)

acti_resample_to_time(data, times, method = "linear", ...)

Arguments

data

A `data.frame` with a column for time in `POSIXct` (usually `time`), and `X`, `Y`, `Z`

sample_rate

sampling frequency, coercible to an integer. This is the sampling rate you're sampling the data *into*.

method

method for interpolation. Options are `"linear"/"constant"`, which uses `stats::approx`, or one of `"fmm", "periodic", "natural", "monoH.FC", "hyman"`, which uses `stats::spline`

...

additional arguments to pass to [stats::approx()] or [stats::spline]

times

a vector of `POSIXct` date/time values to interpolate the data to

Value

A `data.frame`/`tibble` of `time` and `X`, `Y`, `Z`.

Examples

old = options(digits.secs = 3)
x = acti_raw_data
res = acti_resample(data = x, sample_rate = 80)
res = acti_resample(data = x, sample_rate = 100)
res = acti_resample(data = x, sample_rate = 1)
res = acti_resample_to_time(
  data = x,
  times = lubridate::floor_date(x$time, unit = "1 sec"),
)
res_nat = acti_resample_to_time(
  data = x,
  times = lubridate::floor_date(x$time, unit = "1 sec"),
  method = "natural"
)
options(old)