A convenience wrapper function for extracting interpretable features from triaxial gyroscope data collected through smartphones.

gyroscope_features(
  sensor_data,
  time_filter = NULL,
  detrend = F,
  frequency_filter = NULL,
  IMF = 1,
  window_length = NULL,
  window_overlap = NULL,
  derived_kinematics = F,
  funs = NULL,
  models = NULL
)

Arguments

sensor_data

An n x 4 data frame with column names t, x, y, z containing gyroscope measurements. Here n is the total number of measurements, t is the timestamp of each measurement, and x, y and z are linear velocity measurements.

time_filter

A length 2 numeric vector specifying the time range of measurements to use during preprocessing and feature extraction after normalizing the first timestamp to 0. A NULL value means do not filter any measurements.

detrend

A logical value indicating whether to detrend the signal. By default the value is FALSE.

frequency_filter

A length 2 numeric vector specifying the frequency range of the signal (in hertz) to use during preprocessing and feature extraction. A NULL value means do not filter frequencies.

IMF

The number of IMFs used during an empirical mode decomposition (EMD) transformation. The default value of 1 means do not apply EMD to the signal.

window_length

A numerical value representing the length (in number of samples) of the sliding window used during the windowing transformation. Both window_length and window_overlap must be set for the windowing transformation to be applied.

window_overlap

Fraction in the interval [0, 1) specifying the amount of window overlap during a windowing transformation. Both window_length and window_overlap must be set for the windowing transformation to be applied.

derived_kinematics

A logical value specifying whether to add derived kinematic measurements (displacement, acceleration, and jerk) to sensor_data after the transform defined by the above parameters has been applied to the raw sensor measurements.

funs

A function or list of functions that each accept a single numeric vector as input. Each function should return a dataframe of features (normally a single-row datafame, with column names as feature names). The input vectors will be the axial measurements from sensor_data after the transform defined by the above parameters has been applied. If no argument is supplied to either funs or models, a default set of feature extraction functions (as described in default_kinematic_features) will be supplied for this parameter.

models

A function or list of functions that each accept sensor_data as input after the transform defined by the above parameters has been applied and returns features. Useful for functions which compute individual features using multiple input variables.

Value

A list of gyroscope features. The output from funs will be stored under $extracted_features and the output from models will be stored under $model_features. If there is an error during extraction, the returned result will be stored under $error.

Examples

gyro_features <- gyroscope_features(gyroscope_data)
#> Joining, by = "axis"
gyro_features <- gyroscope_features(gyroscope_data, IMF = 3)
#> Joining, by = c("axis", "IMF", "window")
gyro_features <- gyroscope_features( gyroscope_data, time_filter = c(2, 5), detrend = TRUE, frequency_filter = c(4, 16), window_length = 256, window_overlap = 0.5, derived_kinematics = TRUE, funs = time_domain_summary)
#> Joining, by = c("axis", "window")