hrvester is designed to analyze Heart Rate Variability (HRV) data from .fit files. It focuses on orthostatic tests (measuring HRV while laying down and then standing up) to provide insights into an athlete’s recovery and readiness for training.
The package implements research-based preprocessing methods including:
Heart Rate Variability (HRV) is the variation in time intervals between heartbeats. It’s a non-invasive measure that reflects the activity of your autonomic nervous system, and it can be used to assess your body’s readiness for training, recovery status, and overall stress levels.
.fit files to readiness scores, including:
.fit filesYou can install the development version of hrvester from GitHub with:
# install.packages("pak")
pak::pak("sims1253/hrvester")Here’s a basic example showing how to process a single HRV orthostatic test:
library(hrvester)
# Process a single FIT file with preprocessing
result <- process_fit_file("your_file.fit",
correction_method = "linear",
min_quality_threshold = 0.7)
# View the results
resultThe package offers multiple artifact correction methods:
# Read a FIT file
fit_data <- FITfileR::readFitFile("your_file.fit")
# Extract RR intervals with different correction methods
rr_linear <- extract_rr_data(fit_data, correction_method = "linear")
rr_cubic <- extract_rr_data(fit_data, correction_method = "cubic")
rr_lipponen <- extract_rr_data(fit_data, correction_method = "lipponen")
rr_none <- extract_rr_data(fit_data, correction_method = "none")
# Compare quality metrics
methods <- list("Linear" = rr_linear, "Cubic" = rr_cubic,
"Lipponen" = rr_lipponen, "None" = rr_none)
sapply(methods, function(x) attr(x, "quality_metrics")$quality_grade)Process multiple files with quality filtering:
# Process an entire directory of FIT files
results <- process_fit_directory("fit_files/",
min_quality_threshold = 0.7,
correction_method = "linear")
# View summary statistics
summary(results)
# Show quality distribution
table(results$laying_quality_grade)
# Extract RR data and assess quality manually
rr_data <- extract_rr_data(fit_data, correction_method = "linear")
quality_metrics <- attr(rr_data, "quality_metrics")
# Check quality details
quality_metrics[c("artifact_percentage", "signal_quality_index", "quality_grade")]
# Check measurement quality
if(quality_metrics$signal_quality_index >= 90 &&
quality_metrics$artifact_percentage < 5) {
print("High-quality measurement")
} else {
print("Consider re-measurement")
}
# Analyze readiness - get current and baseline data
current_metrics <- tail(results, 1) # Most recent measurement
baseline_metrics <- head(tail(results, 8), 7) # Previous 7 days
# Analyze readiness status
readiness <- analyze_readiness(current_metrics, baseline_metrics)
# View training recommendations
cat("Training status:", readiness$status)
readiness$recommendationsThe preprocessing pipeline implements methods from the HRV literature:
MIT License. See LICENSE for details.