R/preferred_speed.R

Defines functions preferred_speed

Documented in preferred_speed

#' Calculate preferred speed
#'
#' @param M data.frame: Coordinates for markers
#'
#' @return numeric: Mean forward velocity
#'
#' @export
#'
preferred_speed <- function(M) {
  d_time <- max(diff(M$time))

  # Extract sacrum points
  sacrum <- M %>% select(starts_with("sacrum")) |>
    drop_na()

  # Only calculate if there are 2 sacrum points
  if (nrow(sacrum) > 1) {
    d <- numeric(length = (nrow(sacrum) - 1))
    for (jj in 2:nrow(sacrum)) {
      d[jj - 1] <- dist_3d(sacrum[jj, ], sacrum[jj - 1, ])
    }

    # This seems fast (~0.486 m/s; 0.135 km/h -- Is that reasonable?)
    speed <- d / d_time
    mean_speed <- mean(speed)
  } else {
    message("No sacrum points found.")
    mean_speed <- NA
  }
  return(mean_speed)
}
Middleton-Lab/KinematicAnalysis documentation built on March 27, 2022, 7:36 a.m.