Title: | Strength Training Manual R-Language Functions |
---|---|
Description: | Strength training prescription using percent-based approach requires numerous computations and assumptions. 'STMr' package allow users to estimate individual reps-max relationships, implement various progression tables, and create numerous set and rep schemes. The 'STMr' package is originally created as a tool to help writing Jovanović M. (2020) Strength Training Manual <ISBN:979-8604459898>. |
Authors: | Mladen Jovanović [aut, cre] |
Maintainer: | Mladen Jovanović <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.1.6 |
Built: | 2024-10-27 03:34:29 UTC |
Source: | https://github.com/mladenjovanovic/stmr |
Method for adding set and rep schemes
## S3 method for class 'STMr_scheme' lhs + rhs
## S3 method for class 'STMr_scheme' lhs + rhs
lhs |
|
rhs |
|
STMr_scheme
object
scheme1 <- scheme_wave() warmup_scheme <- scheme_perc_1RM() plot(warmup_scheme + scheme1)
scheme1 <- scheme_wave() warmup_scheme <- scheme_perc_1RM() plot(warmup_scheme + scheme1)
Family of functions to adjust %1RM
adj_perc_1RM_RIR( reps, adjustment = 0, mfactor = 1, max_perc_1RM_func = max_perc_1RM_epley, ... ) adj_perc_1RM_DI( reps, adjustment = 0, mfactor = 1, max_perc_1RM_func = max_perc_1RM_epley, ... ) adj_perc_1RM_rel_int( reps, adjustment = 1, mfactor = 1, max_perc_1RM_func = max_perc_1RM_epley, ... ) adj_perc_1RM_perc_MR( reps, adjustment = 1, mfactor = 1, max_perc_1RM_func = max_perc_1RM_epley, ... )
adj_perc_1RM_RIR( reps, adjustment = 0, mfactor = 1, max_perc_1RM_func = max_perc_1RM_epley, ... ) adj_perc_1RM_DI( reps, adjustment = 0, mfactor = 1, max_perc_1RM_func = max_perc_1RM_epley, ... ) adj_perc_1RM_rel_int( reps, adjustment = 1, mfactor = 1, max_perc_1RM_func = max_perc_1RM_epley, ... ) adj_perc_1RM_perc_MR( reps, adjustment = 1, mfactor = 1, max_perc_1RM_func = max_perc_1RM_epley, ... )
reps |
Numeric vector. Number of repetition to be performed |
adjustment |
Numeric vector. Adjustment to be implemented |
mfactor |
Numeric vector. Default is 1 (i.e., no adjustment).
Use |
max_perc_1RM_func |
Max %1RM function to be used. Default is |
... |
Forwarded to |
Numeric vector. Predicted perc 1RM
adj_perc_1RM_RIR()
: Adjust max %1RM using the Reps In Reserve (RIR) approach
adj_perc_1RM_DI()
: Adjust max %1RM using the Deducted Intensity (DI) approach.
This approach simple deducts adjustment
from estimated %1RM
adj_perc_1RM_rel_int()
: Adjust max perc 1RM using the Relative Intensity (RelInt) approach.
This approach simple multiplies estimated perc 1RM with adjustment
adj_perc_1RM_perc_MR()
: Adjust max perc 1RM using the %Max Reps (%MR) approach.
This approach simple divides target reps with adjustment
# ------------------------------------------ # Adjustment using Reps In Reserve (RIR) adj_perc_1RM_RIR(5) # Use ballistic adjustment (this implies doing half the reps) adj_perc_1RM_RIR(5, mfactor = 2) # Use 2 reps in reserve adj_perc_1RM_RIR(5, adjustment = 2) # Use Linear model adj_perc_1RM_RIR(5, max_perc_1RM_func = max_perc_1RM_linear, adjustment = 2) # Use Modifed Epley's equation with a custom parameter values adj_perc_1RM_RIR( 5, max_perc_1RM_func = max_perc_1RM_modified_epley, adjustment = 2, kmod = 0.06 ) # ------------------------------------------ # Adjustment using Deducted Intensity (DI) adj_perc_1RM_DI(5) # Use ballistic adjustment (this implies doing half the reps) adj_perc_1RM_DI(5, mfactor = 2) # Use 10 perc deducted intensity adj_perc_1RM_DI(5, adjustment = -0.1) # Use Linear model adj_perc_1RM_DI(5, max_perc_1RM_func = max_perc_1RM_linear, adjustment = -0.1) # Use Modifed Epley's equation with a custom parameter values adj_perc_1RM_DI( 5, max_perc_1RM_func = max_perc_1RM_modified_epley, adjustment = -0.1, kmod = 0.06 ) # ------------------------------------------ # Adjustment using Relative Intensity (RelInt) adj_perc_1RM_rel_int(5) # Use ballistic adjustment (this implies doing half the reps) adj_perc_1RM_rel_int(5, mfactor = 2) # Use 90 perc relative intensity adj_perc_1RM_rel_int(5, adjustment = 0.9) # Use Linear model adj_perc_1RM_rel_int(5, max_perc_1RM_func = max_perc_1RM_linear, adjustment = 0.9) # Use Modifed Epley's equation with a custom parameter values adj_perc_1RM_rel_int( 5, max_perc_1RM_func = max_perc_1RM_modified_epley, adjustment = 0.9, kmod = 0.06 ) # ------------------------------------------ # Adjustment using % max reps (%MR) adj_perc_1RM_perc_MR(5) # Use ballistic adjustment (this implies doing half the reps) adj_perc_1RM_perc_MR(5, mfactor = 2) # Use 70 perc max reps adj_perc_1RM_perc_MR(5, adjustment = 0.7) # Use Linear model adj_perc_1RM_perc_MR(5, max_perc_1RM_func = max_perc_1RM_linear, adjustment = 0.7) # Use Modifed Epley's equation with a custom parameter values adj_perc_1RM_perc_MR( 5, max_perc_1RM_func = max_perc_1RM_modified_epley, adjustment = 0.7, kmod = 0.06 )
# ------------------------------------------ # Adjustment using Reps In Reserve (RIR) adj_perc_1RM_RIR(5) # Use ballistic adjustment (this implies doing half the reps) adj_perc_1RM_RIR(5, mfactor = 2) # Use 2 reps in reserve adj_perc_1RM_RIR(5, adjustment = 2) # Use Linear model adj_perc_1RM_RIR(5, max_perc_1RM_func = max_perc_1RM_linear, adjustment = 2) # Use Modifed Epley's equation with a custom parameter values adj_perc_1RM_RIR( 5, max_perc_1RM_func = max_perc_1RM_modified_epley, adjustment = 2, kmod = 0.06 ) # ------------------------------------------ # Adjustment using Deducted Intensity (DI) adj_perc_1RM_DI(5) # Use ballistic adjustment (this implies doing half the reps) adj_perc_1RM_DI(5, mfactor = 2) # Use 10 perc deducted intensity adj_perc_1RM_DI(5, adjustment = -0.1) # Use Linear model adj_perc_1RM_DI(5, max_perc_1RM_func = max_perc_1RM_linear, adjustment = -0.1) # Use Modifed Epley's equation with a custom parameter values adj_perc_1RM_DI( 5, max_perc_1RM_func = max_perc_1RM_modified_epley, adjustment = -0.1, kmod = 0.06 ) # ------------------------------------------ # Adjustment using Relative Intensity (RelInt) adj_perc_1RM_rel_int(5) # Use ballistic adjustment (this implies doing half the reps) adj_perc_1RM_rel_int(5, mfactor = 2) # Use 90 perc relative intensity adj_perc_1RM_rel_int(5, adjustment = 0.9) # Use Linear model adj_perc_1RM_rel_int(5, max_perc_1RM_func = max_perc_1RM_linear, adjustment = 0.9) # Use Modifed Epley's equation with a custom parameter values adj_perc_1RM_rel_int( 5, max_perc_1RM_func = max_perc_1RM_modified_epley, adjustment = 0.9, kmod = 0.06 ) # ------------------------------------------ # Adjustment using % max reps (%MR) adj_perc_1RM_perc_MR(5) # Use ballistic adjustment (this implies doing half the reps) adj_perc_1RM_perc_MR(5, mfactor = 2) # Use 70 perc max reps adj_perc_1RM_perc_MR(5, adjustment = 0.7) # Use Linear model adj_perc_1RM_perc_MR(5, max_perc_1RM_func = max_perc_1RM_linear, adjustment = 0.7) # Use Modifed Epley's equation with a custom parameter values adj_perc_1RM_perc_MR( 5, max_perc_1RM_func = max_perc_1RM_modified_epley, adjustment = 0.7, kmod = 0.06 )
These functions are reverse version of the adj_perc_1RM
family of functions. Use these when you want to estimate number of
repetitions to be used when using the known %1RM and level of
adjustment
adj_reps_RIR( perc_1RM, adjustment = 0, mfactor = 1, max_reps_func = max_reps_epley, ... ) adj_reps_DI( perc_1RM, adjustment = 1, mfactor = 1, max_reps_func = max_reps_epley, ... ) adj_reps_rel_int( perc_1RM, adjustment = 1, mfactor = 1, max_reps_func = max_reps_epley, ... ) adj_reps_perc_MR( perc_1RM, adjustment = 1, mfactor = 1, max_reps_func = max_reps_epley, ... )
adj_reps_RIR( perc_1RM, adjustment = 0, mfactor = 1, max_reps_func = max_reps_epley, ... ) adj_reps_DI( perc_1RM, adjustment = 1, mfactor = 1, max_reps_func = max_reps_epley, ... ) adj_reps_rel_int( perc_1RM, adjustment = 1, mfactor = 1, max_reps_func = max_reps_epley, ... ) adj_reps_perc_MR( perc_1RM, adjustment = 1, mfactor = 1, max_reps_func = max_reps_epley, ... )
perc_1RM |
Numeric vector. %1RM used (use 0.5 for 50%, 0.9 for 90%) |
adjustment |
Numeric vector. Adjustment to be implemented |
mfactor |
Numeric vector. Default is 1 (i.e., no adjustment).
Use |
max_reps_func |
Max reps function to be used. Default is |
... |
Forwarded to |
Numeric vector. Predicted number of repetitions to be performed
adj_reps_RIR()
: Adjust number of repetitions using the Reps In Reserve (RIR) approach
adj_reps_DI()
: Adjust number of repetitions using the Deducted Intensity (DI) approach
adj_reps_rel_int()
: Adjust number of repetitions using the Relative Intensity (RelInt) approach
adj_reps_perc_MR()
: Adjust number of repetitions using the % max reps (%MR) approach
# ------------------------------------------ # Adjustment using Reps In Reserve (RIR) adj_reps_RIR(0.75) # Use ballistic adjustment (this implies doing half the reps) adj_reps_RIR(0.75, mfactor = 2) # Use 2 reps in reserve adj_reps_RIR(0.75, adjustment = 2) # Use Linear model adj_reps_RIR(0.75, max_reps_func = max_reps_linear, adjustment = 2) # Use Modifed Epley's equation with a custom parameter values adj_reps_RIR( 0.75, max_reps_func = max_reps_modified_epley, adjustment = 2, kmod = 0.06 ) # ------------------------------------------ # Adjustment using Deducted Intensity (DI) adj_reps_DI(0.75) # Use ballistic adjustment (this implies doing half the reps) adj_reps_DI(0.75, mfactor = 2) # Use 10% deducted intensity adj_reps_DI(0.75, adjustment = -0.1) # Use Linear model adj_reps_DI(0.75, max_reps_func = max_reps_linear, adjustment = -0.1) # Use Modifed Epley's equation with a custom parameter values adj_reps_DI( 0.75, max_reps_func = max_reps_modified_epley, adjustment = -0.1, kmod = 0.06 ) # ------------------------------------------ # Adjustment using Relative Intensity (RelInt) adj_reps_rel_int(0.75) # Use ballistic adjustment (this implies doing half the reps) adj_reps_rel_int(0.75, mfactor = 2) # Use 85% relative intensity adj_reps_rel_int(0.75, adjustment = 0.85) # Use Linear model adj_reps_rel_int(0.75, max_reps_func = max_reps_linear, adjustment = 0.85) # Use Modifed Epley's equation with a custom parameter values adj_reps_rel_int( 0.75, max_reps_func = max_reps_modified_epley, adjustment = 0.85, kmod = 0.06 ) # ------------------------------------------ # Adjustment using % max reps (%MR) adj_reps_perc_MR(0.75) # Use ballistic adjustment (this implies doing half the reps) adj_reps_perc_MR(0.75, mfactor = 2) # Use 85% of max reps adj_reps_perc_MR(0.75, adjustment = 0.85) # Use Linear model adj_reps_perc_MR(0.75, max_reps_func = max_reps_linear, adjustment = 0.85) # Use Modifed Epley's equation with a custom parameter values adj_reps_perc_MR( 0.75, max_reps_func = max_reps_modified_epley, adjustment = 0.85, kmod = 0.06 )
# ------------------------------------------ # Adjustment using Reps In Reserve (RIR) adj_reps_RIR(0.75) # Use ballistic adjustment (this implies doing half the reps) adj_reps_RIR(0.75, mfactor = 2) # Use 2 reps in reserve adj_reps_RIR(0.75, adjustment = 2) # Use Linear model adj_reps_RIR(0.75, max_reps_func = max_reps_linear, adjustment = 2) # Use Modifed Epley's equation with a custom parameter values adj_reps_RIR( 0.75, max_reps_func = max_reps_modified_epley, adjustment = 2, kmod = 0.06 ) # ------------------------------------------ # Adjustment using Deducted Intensity (DI) adj_reps_DI(0.75) # Use ballistic adjustment (this implies doing half the reps) adj_reps_DI(0.75, mfactor = 2) # Use 10% deducted intensity adj_reps_DI(0.75, adjustment = -0.1) # Use Linear model adj_reps_DI(0.75, max_reps_func = max_reps_linear, adjustment = -0.1) # Use Modifed Epley's equation with a custom parameter values adj_reps_DI( 0.75, max_reps_func = max_reps_modified_epley, adjustment = -0.1, kmod = 0.06 ) # ------------------------------------------ # Adjustment using Relative Intensity (RelInt) adj_reps_rel_int(0.75) # Use ballistic adjustment (this implies doing half the reps) adj_reps_rel_int(0.75, mfactor = 2) # Use 85% relative intensity adj_reps_rel_int(0.75, adjustment = 0.85) # Use Linear model adj_reps_rel_int(0.75, max_reps_func = max_reps_linear, adjustment = 0.85) # Use Modifed Epley's equation with a custom parameter values adj_reps_rel_int( 0.75, max_reps_func = max_reps_modified_epley, adjustment = 0.85, kmod = 0.06 ) # ------------------------------------------ # Adjustment using % max reps (%MR) adj_reps_perc_MR(0.75) # Use ballistic adjustment (this implies doing half the reps) adj_reps_perc_MR(0.75, mfactor = 2) # Use 85% of max reps adj_reps_perc_MR(0.75, adjustment = 0.85) # Use Linear model adj_reps_perc_MR(0.75, max_reps_func = max_reps_linear, adjustment = 0.85) # Use Modifed Epley's equation with a custom parameter values adj_reps_perc_MR( 0.75, max_reps_func = max_reps_modified_epley, adjustment = 0.85, kmod = 0.06 )
This function create simple example using progression_table
create_example( progression_table, reps = c(3, 5, 10), volume = c("intensive", "normal", "extensive"), type = c("grinding", "ballistic"), ... )
create_example( progression_table, reps = c(3, 5, 10), volume = c("intensive", "normal", "extensive"), type = c("grinding", "ballistic"), ... )
progression_table |
Progression table function |
reps |
Numeric vector. Default is |
volume |
Character vector. Default is |
type |
Character vector. Type of max rep table. Options are grinding (Default) and ballistic |
... |
Extra arguments forwarded to |
Data frame with the following structure
Type of the set and rep scheme
Number of reps performed
Volume type of the set and rep scheme
First progression step %1RM
Second progression step %1RM
Third progression step %1RM
Fourth progression step %1RM
Difference in %1RM between second and first progression step
Difference in %1RM between third and second progression step
Difference in %1RM between fourth and third progression step
create_example(progression_RIR) # Create example using specific reps-max table and k value create_example( progression_RIR, max_perc_1RM_func = max_perc_1RM_modified_epley, kmod = 0.0388 )
create_example(progression_RIR) # Create example using specific reps-max table and k value create_example( progression_RIR, max_perc_1RM_func = max_perc_1RM_modified_epley, kmod = 0.0388 )
By default, target variable is the reps performed, while the predictors is the perc_1RM
or
weight
. To reverse this, use the reverse = TRUE
argument
estimate_k_generic( perc_1RM, reps, eRIR = 0, k = 0.0333, reverse = FALSE, weighted = "none", ... ) estimate_k_generic_1RM( weight, reps, eRIR = 0, k = 0.0333, reverse = FALSE, weighted = "none", ... ) estimate_k(perc_1RM, reps, eRIR = 0, reverse = FALSE, weighted = "none", ...) estimate_k_1RM(weight, reps, eRIR = 0, reverse = FALSE, weighted = "none", ...) estimate_kmod( perc_1RM, reps, eRIR = 0, reverse = FALSE, weighted = "none", ... ) estimate_kmod_1RM( weight, reps, eRIR = 0, reverse = FALSE, weighted = "none", ... ) estimate_klin( perc_1RM, reps, eRIR = 0, reverse = FALSE, weighted = "none", ... ) estimate_klin_1RM( weight, reps, eRIR = 0, reverse = FALSE, weighted = "none", ... ) get_predicted_1RM_from_k_model(model)
estimate_k_generic( perc_1RM, reps, eRIR = 0, k = 0.0333, reverse = FALSE, weighted = "none", ... ) estimate_k_generic_1RM( weight, reps, eRIR = 0, k = 0.0333, reverse = FALSE, weighted = "none", ... ) estimate_k(perc_1RM, reps, eRIR = 0, reverse = FALSE, weighted = "none", ...) estimate_k_1RM(weight, reps, eRIR = 0, reverse = FALSE, weighted = "none", ...) estimate_kmod( perc_1RM, reps, eRIR = 0, reverse = FALSE, weighted = "none", ... ) estimate_kmod_1RM( weight, reps, eRIR = 0, reverse = FALSE, weighted = "none", ... ) estimate_klin( perc_1RM, reps, eRIR = 0, reverse = FALSE, weighted = "none", ... ) estimate_klin_1RM( weight, reps, eRIR = 0, reverse = FALSE, weighted = "none", ... ) get_predicted_1RM_from_k_model(model)
perc_1RM |
%1RM |
reps |
Number of repetitions done |
eRIR |
Subjective estimation of reps-in-reserve (eRIR) |
k |
Value for the generic Epley's equation, which is by default equal to 0.0333 |
reverse |
Logical, default is |
weighted |
What weighting should be used for the non-linear regression? Default is "none". Other options include: "reps" (for 1/reps weighting), "load" (for using weight or %1RM), "eRIR" (for 1/(eRIR+1) weighting), "reps x load", "reps x eRIR", "load x eRIR", and "reps x load x eRIR" |
... |
Forwarded to |
weight |
Weight used |
model |
Object returned from the |
nlsLM
object
estimate_k_generic()
: Provides the model with generic k
parameter
estimate_k_generic_1RM()
: Provides the model with generic k
parameter, as well as
estimated 1RM
. This is a novel estimation function that uses the absolute weights.
estimate_k()
: Estimate the parameter k
in the Epley's equation
estimate_k_1RM()
: Estimate the parameter k
in the Epley's equation, as well as
1RM
. This is a novel estimation function that uses the absolute weights.
estimate_kmod()
: Estimate the parameter kmod
in the modified Epley's equation
estimate_kmod_1RM()
: Estimate the parameter kmod
in the modified Epley's equation, as well as
1RM
. This is a novel estimation function that uses the absolute weights
estimate_klin()
: Estimate the parameter klin
using the Linear/Brzycki model
estimate_klin_1RM()
: Estimate the parameter klin
in the Linear/Brzycki equation, as well as
1RM
. This is a novel estimation function that uses the absolute weights
get_predicted_1RM_from_k_model()
: Estimate the 1RM from estimate_k_1RM
function
The problem with Epley's estimation model (implemented in estimate_k_1RM
function)
is that it predicts the 1RM when nRM = 0. Thus, the estimated parameter in the model produced
by the estimate_k_1RM
function is not 1RM, but 0RM. This function calculates the
weight at nRM = 1 for both the normal and reverse model. See Examples for code
# --------------------------------------------------------- # Generic Epley's model m1 <- estimate_k_generic( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Generic Epley's model that also estimates 1RM m1 <- estimate_k_generic_1RM( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Epley's model m1 <- estimate_k( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Epley's model that also estimates 1RM m1 <- estimate_k_1RM( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Modified Epley's model m1 <- estimate_kmod( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Modified Epley's model that also estimates 1RM m1 <- estimate_kmod_1RM( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model m1 <- estimate_klin( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model thal also estimates 1RM m1 <- estimate_klin_1RM( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Estimating 1RM from Epley's model m1 <- estimate_k_1RM(150 * c(0.9, 0.8, 0.7), c(3, 6, 12)) m2 <- estimate_k_1RM(150 * c(0.9, 0.8, 0.7), c(3, 6, 12), reverse = TRUE) # Estimated 0RM values from both model c(coef(m1)[[1]], coef(m2)[[1]]) # But these are not 1RMs!!! # Using the "reverse" model, where nRM is the predictor (in this case m2) # makes it easier to predict 1RM predict(m2, newdata = data.frame(nRM = 1)) # But for the normal model it involve reversing the formula # To spare you from the math pain, use this get_predicted_1RM_from_k_model(m1) # It also works for the "reverse" model get_predicted_1RM_from_k_model(m2)
# --------------------------------------------------------- # Generic Epley's model m1 <- estimate_k_generic( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Generic Epley's model that also estimates 1RM m1 <- estimate_k_generic_1RM( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Epley's model m1 <- estimate_k( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Epley's model that also estimates 1RM m1 <- estimate_k_1RM( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Modified Epley's model m1 <- estimate_kmod( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Modified Epley's model that also estimates 1RM m1 <- estimate_kmod_1RM( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model m1 <- estimate_klin( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model thal also estimates 1RM m1 <- estimate_klin_1RM( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Estimating 1RM from Epley's model m1 <- estimate_k_1RM(150 * c(0.9, 0.8, 0.7), c(3, 6, 12)) m2 <- estimate_k_1RM(150 * c(0.9, 0.8, 0.7), c(3, 6, 12), reverse = TRUE) # Estimated 0RM values from both model c(coef(m1)[[1]], coef(m2)[[1]]) # But these are not 1RMs!!! # Using the "reverse" model, where nRM is the predictor (in this case m2) # makes it easier to predict 1RM predict(m2, newdata = data.frame(nRM = 1)) # But for the normal model it involve reversing the formula # To spare you from the math pain, use this get_predicted_1RM_from_k_model(m1) # It also works for the "reverse" model get_predicted_1RM_from_k_model(m2)
These functions provide estimated 1RM and parameter values using the mixed-effect regression. By default,
target variable is the reps performed, while the predictor is the perc_1RM
or
weight
. To reverse this, use the reverse = TRUE
argument
estimate_k_mixed(athlete, perc_1RM, reps, eRIR = 0, reverse = FALSE, ...) estimate_k_generic_1RM_mixed( athlete, weight, reps, eRIR = 0, k = 0.0333, reverse = FALSE, random = zeroRM ~ 1, ... ) estimate_k_1RM_mixed( athlete, weight, reps, eRIR = 0, reverse = FALSE, random = k + zeroRM ~ 1, ... ) estimate_kmod_mixed(athlete, perc_1RM, reps, eRIR = 0, reverse = FALSE, ...) estimate_kmod_1RM_mixed( athlete, weight, reps, eRIR = 0, reverse = FALSE, random = kmod + oneRM ~ 1, ... ) estimate_klin_mixed(athlete, perc_1RM, reps, eRIR = 0, reverse = FALSE, ...) estimate_klin_1RM_mixed( athlete, weight, reps, eRIR = 0, reverse = FALSE, random = klin + oneRM ~ 1, ... )
estimate_k_mixed(athlete, perc_1RM, reps, eRIR = 0, reverse = FALSE, ...) estimate_k_generic_1RM_mixed( athlete, weight, reps, eRIR = 0, k = 0.0333, reverse = FALSE, random = zeroRM ~ 1, ... ) estimate_k_1RM_mixed( athlete, weight, reps, eRIR = 0, reverse = FALSE, random = k + zeroRM ~ 1, ... ) estimate_kmod_mixed(athlete, perc_1RM, reps, eRIR = 0, reverse = FALSE, ...) estimate_kmod_1RM_mixed( athlete, weight, reps, eRIR = 0, reverse = FALSE, random = kmod + oneRM ~ 1, ... ) estimate_klin_mixed(athlete, perc_1RM, reps, eRIR = 0, reverse = FALSE, ...) estimate_klin_1RM_mixed( athlete, weight, reps, eRIR = 0, reverse = FALSE, random = klin + oneRM ~ 1, ... )
athlete |
Athlete identifier |
perc_1RM |
%1RM |
reps |
Number of repetitions done |
eRIR |
Subjective estimation of reps-in-reserve (eRIR) |
reverse |
Logical, default is |
... |
Forwarded to |
weight |
Weight used |
k |
Value for the generic Epley's equation, which is by default equal to 0.0333 |
random |
Random parameter forwarded to |
nlme
object
estimate_k_mixed()
: Estimate the parameter k
in the Epley's equation
estimate_k_generic_1RM_mixed()
: Provides the model with generic k
parameter, as well as
estimated 1RM
. This is a novel estimation function that uses the absolute weights
estimate_k_1RM_mixed()
: Estimate the parameter k
in the Epley's equation, as well as
1RM
. This is a novel estimation function that uses the absolute weights
estimate_kmod_mixed()
: Estimate the parameter kmod
in the Modified Epley's equation
estimate_kmod_1RM_mixed()
: Estimate the parameter kmod
in the Modified Epley's equation, as well as
1RM
. This is a novel estimation function that uses the absolute weights
estimate_klin_mixed()
: Estimate the parameter klin
in the Linear/Brzycki's equation
estimate_klin_1RM_mixed()
: Estimate the parameter klin
in the Linear/Brzycki equation, as well as
1RM
. This is a novel estimation function that uses the absolute weights
# --------------------------------------------------------- # Epley's model m1 <- estimate_k_mixed( athlete = RTF_testing$Athlete, perc_1RM = RTF_testing$`Real %1RM`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Generic Epley's model that also estimates 1RM m1 <- estimate_k_generic_1RM_mixed( athlete = RTF_testing$Athlete, weight = RTF_testing$`Real Weight`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Epley's model that also estimates 1RM m1 <- estimate_k_1RM_mixed( athlete = RTF_testing$Athlete, weight = RTF_testing$`Real Weight`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Modifed Epley's model m1 <- estimate_kmod_mixed( athlete = RTF_testing$Athlete, perc_1RM = RTF_testing$`Real %1RM`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Modified Epley's model that also estimates 1RM m1 <- estimate_kmod_1RM_mixed( athlete = RTF_testing$Athlete, weight = RTF_testing$`Real Weight`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model m1 <- estimate_klin_mixed( athlete = RTF_testing$Athlete, perc_1RM = RTF_testing$`Real %1RM`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model that also estimates 1RM m1 <- estimate_klin_1RM_mixed( athlete = RTF_testing$Athlete, weight = RTF_testing$`Real Weight`, reps = RTF_testing$nRM ) coef(m1)
# --------------------------------------------------------- # Epley's model m1 <- estimate_k_mixed( athlete = RTF_testing$Athlete, perc_1RM = RTF_testing$`Real %1RM`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Generic Epley's model that also estimates 1RM m1 <- estimate_k_generic_1RM_mixed( athlete = RTF_testing$Athlete, weight = RTF_testing$`Real Weight`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Epley's model that also estimates 1RM m1 <- estimate_k_1RM_mixed( athlete = RTF_testing$Athlete, weight = RTF_testing$`Real Weight`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Modifed Epley's model m1 <- estimate_kmod_mixed( athlete = RTF_testing$Athlete, perc_1RM = RTF_testing$`Real %1RM`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Modified Epley's model that also estimates 1RM m1 <- estimate_kmod_1RM_mixed( athlete = RTF_testing$Athlete, weight = RTF_testing$`Real Weight`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model m1 <- estimate_klin_mixed( athlete = RTF_testing$Athlete, perc_1RM = RTF_testing$`Real %1RM`, reps = RTF_testing$nRM ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model that also estimates 1RM m1 <- estimate_klin_1RM_mixed( athlete = RTF_testing$Athlete, weight = RTF_testing$`Real Weight`, reps = RTF_testing$nRM ) coef(m1)
These functions provide estimate 1RM and parameter values using the quantile regression. By default,
target variable is the reps performed, while the predictors is the perc_1RM
or
weight
. To reverse this, use the reverse = TRUE
argument
estimate_k_quantile( perc_1RM, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_k_generic_1RM_quantile( weight, reps, eRIR = 0, k = 0.0333, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_k_1RM_quantile( weight, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_kmod_quantile( perc_1RM, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_kmod_1RM_quantile( weight, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_klin_quantile( perc_1RM, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_klin_1RM_quantile( weight, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... )
estimate_k_quantile( perc_1RM, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_k_generic_1RM_quantile( weight, reps, eRIR = 0, k = 0.0333, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_k_1RM_quantile( weight, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_kmod_quantile( perc_1RM, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_kmod_1RM_quantile( weight, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_klin_quantile( perc_1RM, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... ) estimate_klin_1RM_quantile( weight, reps, eRIR = 0, tau = 0.5, reverse = FALSE, control = quantreg::nlrq.control(maxiter = 10^4, InitialStepSize = 0), ... )
perc_1RM |
%1RM |
reps |
Number of repetitions done |
eRIR |
Subjective estimation of reps-in-reserve (eRIR) |
tau |
Vector of quantiles to be estimated. Default is 0.5 |
reverse |
Logical, default is |
control |
Control object for the |
... |
Forwarded to |
weight |
Weight used |
k |
Value for the generic Epley's equation, which is by default equal to 0.0333 |
nlrq
object
estimate_k_quantile()
: Estimate the parameter k
in the Epley's equation
estimate_k_generic_1RM_quantile()
: Provides the model with generic k
parameter, as well as
estimated 1RM
. This is a novel estimation function that uses the absolute weights
estimate_k_1RM_quantile()
: Estimate the parameter k
in the Epley's equation, as well as
1RM
. This is a novel estimation function that uses the absolute weights
estimate_kmod_quantile()
: Estimate the parameter kmod
in the modified Epley's equation
estimate_kmod_1RM_quantile()
: Estimate the parameter kmod
in the modified Epley's equation, as well as
1RM
. This is a novel estimation function that uses the absolute weights
estimate_klin_quantile()
: Estimate the parameter klin
in the Linear/Brzycki equation
estimate_klin_1RM_quantile()
: Estimate the parameter klin
in the Linear/Brzycki equation, as well as
1RM
. This is a novel estimation function that uses the absolute weights
# --------------------------------------------------------- # Epley's model m1 <- estimate_k_quantile( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Epley's model that also estimates 1RM m1 <- estimate_k_generic_1RM_quantile( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Epley's model that also estimates 1RM m1 <- estimate_k_1RM_quantile( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Modified Epley's model m1 <- estimate_kmod_quantile( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Modified Epley's model that also estimates 1RM m1 <- estimate_kmod_1RM_quantile( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model m1 <- estimate_klin_quantile( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model thal also estimates 1RM m1 <- estimate_klin_1RM_quantile( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1)
# --------------------------------------------------------- # Epley's model m1 <- estimate_k_quantile( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Epley's model that also estimates 1RM m1 <- estimate_k_generic_1RM_quantile( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Epley's model that also estimates 1RM m1 <- estimate_k_1RM_quantile( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Modified Epley's model m1 <- estimate_kmod_quantile( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Modified Epley's model that also estimates 1RM m1 <- estimate_kmod_1RM_quantile( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model m1 <- estimate_klin_quantile( perc_1RM = c(0.7, 0.8, 0.9), reps = c(10, 5, 3) ) coef(m1) # --------------------------------------------------------- # Linear/Brzycki model thal also estimates 1RM m1 <- estimate_klin_1RM_quantile( weight = c(70, 110, 140), reps = c(10, 5, 3) ) coef(m1)
Estimate the rolling profile and 1RM
estimate_rolling_1RM( weight, reps, eRIR = 0, day_index, window = 14, estimate_function = estimate_k_1RM, ... )
estimate_rolling_1RM( weight, reps, eRIR = 0, day_index, window = 14, estimate_function = estimate_k_1RM, ... )
weight |
Weight used |
reps |
Number of repetitions done |
eRIR |
Subjective estimation of reps-in-reserve (eRIR) |
day_index |
Day index used to estimate rolling window |
window |
Width of the rolling window. Default is 14 |
estimate_function |
Estimation function to be used. Default is
|
... |
Forwarded to |
Data frame with day index and coefficients returned by the estimate_function
function
estimate_rolling_1RM( weight = strength_training_log$weight, reps = strength_training_log$reps, eRIR = strength_training_log$eRIR, day_index = strength_training_log$day, window = 10, estimate_function = estimate_k_1RM_quantile, tau = 0.9 )
estimate_rolling_1RM( weight = strength_training_log$weight, reps = strength_training_log$reps, eRIR = strength_training_log$eRIR, day_index = strength_training_log$day, window = 10, estimate_function = estimate_k_1RM_quantile, tau = 0.9 )
Family of functions to create progression tables
generate_progression_table( progression_table, type = c("grinding", "ballistic"), volume = c("intensive", "normal", "extensive"), reps = 1:12, step = seq(-3, 0, 1), ... ) progression_DI( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, step_increment = -0.025, volume_increment = step_increment, ... ) progression_RIR( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, step_increment = 1, volume_increment = step_increment, ... ) progression_RIR_increment( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, ... ) progression_perc_MR( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, step_increment = -0.1, volume_increment = -0.2, ... ) progression_perc_MR_variable( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, ... ) progression_perc_drop( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, ... ) progression_rel_int( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, step_increment = -0.05, volume_increment = -0.075, ... )
generate_progression_table( progression_table, type = c("grinding", "ballistic"), volume = c("intensive", "normal", "extensive"), reps = 1:12, step = seq(-3, 0, 1), ... ) progression_DI( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, step_increment = -0.025, volume_increment = step_increment, ... ) progression_RIR( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, step_increment = 1, volume_increment = step_increment, ... ) progression_RIR_increment( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, ... ) progression_perc_MR( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, step_increment = -0.1, volume_increment = -0.2, ... ) progression_perc_MR_variable( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, ... ) progression_perc_drop( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, ... ) progression_rel_int( reps, step = 0, volume = "normal", adjustment = 0, type = "grinding", mfactor = NULL, step_increment = -0.05, volume_increment = -0.075, ... )
progression_table |
Progression table function to use |
type |
Character vector. Type of max rep table. Options are grinding (Default) and ballistic. |
volume |
Character vector: 'intensive', 'normal' (Default), or 'extensive' |
reps |
Numeric vector. Number of repetition to be performed |
step |
Numeric vector. Progression step. Default is 0. Use negative numbers (i.e., -1, -2) |
... |
Extra arguments forwarded to |
adjustment |
Numeric vector. Additional post adjustment applied to sets. Default is none (value depends on the method). |
mfactor |
Numeric vector. Factor to adjust max rep table. Used instead of |
step_increment , volume_increment
|
Numeric vector. Used to adjust specific progression methods |
List with two elements: adjustment
and perc_1RM
generate_progression_table()
: Generates progression tables
progression_DI()
: Deducted Intensity progression table. This simplest progression
table simply deducts intensity to progress. Adjust this deducted by using the
deduction
parameter (default is equal to -0.025)
progression_RIR()
: Constant RIR Increment progression table. This variant have constant RIR
increment across reps from phases to phases and RIR difference between extensive, normal, and
intensive schemes. Use step_increment
and volume_increment
parameters to
utilize needed increments
progression_RIR_increment()
: RIR Increment progression table (see Strength Training Manual)
progression_perc_MR()
: Constant %MR Step progression table. This variant have constant %MR
increment across reps from phases to phases and %MR difference between extensive, normal, and
intensive schemes. Use step_increment
and volume_increment
parameters to
utilize needed increments
progression_perc_MR_variable()
: Variable %MR Step progression table
progression_perc_drop()
: Perc Drop progression table (see Strength Training Manual)
progression_rel_int()
: Relative Intensity progression table. Use step_increment
and volume_increment
parameters to utilize needed increments
Jovanović M. 2020. Strength Training Manual: The Agile Periodization Approach. Independently published.
Jovanović M. 2020. Strength Training Manual: The Agile Periodization Approach. Independently published.
generate_progression_table(progression_RIR) generate_progression_table( progression_RIR, type = "grinding", volume = "normal", step_increment = 2 ) # Create progression table using specific reps-max table and k value generate_progression_table( progression_RIR, max_perc_1RM_func = max_perc_1RM_modified_epley, kmod = 0.0388 ) # ------------------------------------------ # Progression Deducted Intensity progression_DI(10, step = seq(-3, 0, 1)) progression_DI(10, step = seq(-3, 0, 1), volume = "extensive") progression_DI(5, step = seq(-3, 0, 1), type = "ballistic", step_increment = -0.05) progression_DI( 5, step = seq(-3, 0, 1), type = "ballistic", step_increment = -0.05, volume_increment = -0.1 ) # Generate progression table generate_progression_table(progression_DI, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_DI, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression RIR Constant progression_RIR(10, step = seq(-3, 0, 1)) progression_RIR(10, step = seq(-3, 0, 1), volume = "extensive") progression_RIR(5, step = seq(-3, 0, 1), type = "ballistic", step_increment = 2) progression_RIR( 5, step = seq(-3, 0, 1), type = "ballistic", step_increment = 3 ) # Generate progression table generate_progression_table(progression_RIR, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_RIR, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # Plot progression table plot_progression_table(progression_RIR) plot_progression_table(progression_RIR, "adjustment") # ------------------------------------------ # Progression RIR Increment progression_RIR_increment(10, step = seq(-3, 0, 1)) progression_RIR_increment(10, step = seq(-3, 0, 1), volume = "extensive") progression_RIR_increment(5, step = seq(-3, 0, 1), type = "ballistic") # Generate progression table generate_progression_table(progression_RIR_increment, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_RIR_increment, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression %MR Step Const progression_perc_MR(10, step = seq(-3, 0, 1)) progression_perc_MR(10, step = seq(-3, 0, 1), volume = "extensive") progression_perc_MR(5, step = seq(-3, 0, 1), type = "ballistic", step_increment = -0.2) progression_perc_MR( 5, step = seq(-3, 0, 1), type = "ballistic", step_increment = -0.15, volume_increment = -0.25 ) # Generate progression table generate_progression_table(progression_perc_MR, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_perc_MR, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression %MR Step Variable progression_perc_MR_variable(10, step = seq(-3, 0, 1)) progression_perc_MR_variable(10, step = seq(-3, 0, 1), volume = "extensive") progression_perc_MR_variable(5, step = seq(-3, 0, 1), type = "ballistic") # Generate progression table generate_progression_table(progression_perc_MR_variable, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_perc_MR_variable, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression Perc Drop progression_perc_drop(10, step = seq(-3, 0, 1)) progression_perc_drop(10, step = seq(-3, 0, 1), volume = "extensive") progression_perc_drop(5, step = seq(-3, 0, 1), type = "ballistic") # Generate progression table generate_progression_table(progression_perc_drop, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_perc_drop, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression Relative Intensity progression_rel_int(10, step = seq(-3, 0, 1)) progression_rel_int(10, step = seq(-3, 0, 1), volume = "extensive") progression_rel_int(5, step = seq(-3, 0, 1), type = "ballistic") # Generate progression table generate_progression_table(progression_rel_int, type = "grinding", volume = "normal") generate_progression_table(progression_rel_int, step_increment = -0.1, volume_increment = 0.15) # Use different reps-max model generate_progression_table( progression_rel_int, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 )
generate_progression_table(progression_RIR) generate_progression_table( progression_RIR, type = "grinding", volume = "normal", step_increment = 2 ) # Create progression table using specific reps-max table and k value generate_progression_table( progression_RIR, max_perc_1RM_func = max_perc_1RM_modified_epley, kmod = 0.0388 ) # ------------------------------------------ # Progression Deducted Intensity progression_DI(10, step = seq(-3, 0, 1)) progression_DI(10, step = seq(-3, 0, 1), volume = "extensive") progression_DI(5, step = seq(-3, 0, 1), type = "ballistic", step_increment = -0.05) progression_DI( 5, step = seq(-3, 0, 1), type = "ballistic", step_increment = -0.05, volume_increment = -0.1 ) # Generate progression table generate_progression_table(progression_DI, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_DI, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression RIR Constant progression_RIR(10, step = seq(-3, 0, 1)) progression_RIR(10, step = seq(-3, 0, 1), volume = "extensive") progression_RIR(5, step = seq(-3, 0, 1), type = "ballistic", step_increment = 2) progression_RIR( 5, step = seq(-3, 0, 1), type = "ballistic", step_increment = 3 ) # Generate progression table generate_progression_table(progression_RIR, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_RIR, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # Plot progression table plot_progression_table(progression_RIR) plot_progression_table(progression_RIR, "adjustment") # ------------------------------------------ # Progression RIR Increment progression_RIR_increment(10, step = seq(-3, 0, 1)) progression_RIR_increment(10, step = seq(-3, 0, 1), volume = "extensive") progression_RIR_increment(5, step = seq(-3, 0, 1), type = "ballistic") # Generate progression table generate_progression_table(progression_RIR_increment, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_RIR_increment, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression %MR Step Const progression_perc_MR(10, step = seq(-3, 0, 1)) progression_perc_MR(10, step = seq(-3, 0, 1), volume = "extensive") progression_perc_MR(5, step = seq(-3, 0, 1), type = "ballistic", step_increment = -0.2) progression_perc_MR( 5, step = seq(-3, 0, 1), type = "ballistic", step_increment = -0.15, volume_increment = -0.25 ) # Generate progression table generate_progression_table(progression_perc_MR, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_perc_MR, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression %MR Step Variable progression_perc_MR_variable(10, step = seq(-3, 0, 1)) progression_perc_MR_variable(10, step = seq(-3, 0, 1), volume = "extensive") progression_perc_MR_variable(5, step = seq(-3, 0, 1), type = "ballistic") # Generate progression table generate_progression_table(progression_perc_MR_variable, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_perc_MR_variable, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression Perc Drop progression_perc_drop(10, step = seq(-3, 0, 1)) progression_perc_drop(10, step = seq(-3, 0, 1), volume = "extensive") progression_perc_drop(5, step = seq(-3, 0, 1), type = "ballistic") # Generate progression table generate_progression_table(progression_perc_drop, type = "grinding", volume = "normal") # Use different reps-max model generate_progression_table( progression_perc_drop, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) # ------------------------------------------ # Progression Relative Intensity progression_rel_int(10, step = seq(-3, 0, 1)) progression_rel_int(10, step = seq(-3, 0, 1), volume = "extensive") progression_rel_int(5, step = seq(-3, 0, 1), type = "ballistic") # Generate progression table generate_progression_table(progression_rel_int, type = "grinding", volume = "normal") generate_progression_table(progression_rel_int, step_increment = -0.1, volume_increment = 0.15) # Use different reps-max model generate_progression_table( progression_rel_int, type = "grinding", volume = "normal", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 )
Function get_perc_1RM
represent a wrapper function
get_perc_1RM(reps, method = "RIR", model = "epley", ...)
get_perc_1RM(reps, method = "RIR", model = "epley", ...)
reps |
Numeric vector. Number of repetition to be performed |
method |
Character vector. Default is "RIR". Other options are "DI", "RelInt", "%MR" |
model |
Character vector. Default is "epley". Other options are "modified epley", "linear" |
... |
Forwarded to selected |
Numeric vector. Predicted %1RM
get_perc_1RM(5) # # Use ballistic adjustment (this implies doing half the reps) get_perc_1RM(5, mfactor = 2) # Use perc MR adjustment method get_perc_1RM(5, "%MR", adjustment = 0.8) # Use linear model with use defined klin values get_perc_1RM(5, "%MR", model = "linear", adjustment = 0.8, klin = 36)
get_perc_1RM(5) # # Use ballistic adjustment (this implies doing half the reps) get_perc_1RM(5, mfactor = 2) # Use perc MR adjustment method get_perc_1RM(5, "%MR", adjustment = 0.8) # Use linear model with use defined klin values get_perc_1RM(5, "%MR", model = "linear", adjustment = 0.8, klin = 36)
Function get_reps
represent a wrapper function. This function is the
reverse version of the get_perc_1RM
function. Use it when
you want to estimate number of repetitions to be used when using the
known %1RM and level of adjustment
get_reps(perc_1RM, method = "RIR", model = "epley", ...)
get_reps(perc_1RM, method = "RIR", model = "epley", ...)
perc_1RM |
Numeric vector. %1RM used (use 0.5 for 50 perc, 0.9 for 90 perc) |
method |
Character vector. Default is "RIR". Other options are "DI", "RelInt", "%MR" |
model |
Character vector. Default is "epley". Other options are "modified epley", "linear" |
... |
Forwarded to selected |
Numeric vector Predicted repetitions
get_reps(0.75) # # Use ballistic adjustment (this implies doing half the reps) get_reps(0.75, mfactor = 2) # Use %MR adjustment method get_reps(0.75, "%MR", adjustment = 0.8) # Use linear model with use defined klin values get_reps(0.75, "%MR", model = "linear", adjustment = 0.8, klin = 36)
get_reps(0.75) # # Use ballistic adjustment (this implies doing half the reps) get_reps(0.75, mfactor = 2) # Use %MR adjustment method get_reps(0.75, "%MR", adjustment = 0.8) # Use linear model with use defined klin values get_reps(0.75, "%MR", model = "linear", adjustment = 0.8, klin = 36)
Family of functions to estimate max %1RM
max_perc_1RM_epley(reps, k = 0.0333) max_perc_1RM_modified_epley(reps, kmod = 0.0353) max_perc_1RM_linear(reps, klin = 33)
max_perc_1RM_epley(reps, k = 0.0333) max_perc_1RM_modified_epley(reps, kmod = 0.0353) max_perc_1RM_linear(reps, klin = 33)
reps |
Numeric vector. Number of repetition to be performed |
k |
User defined |
kmod |
User defined |
klin |
User defined |
Numeric vector. Predicted %1RM
max_perc_1RM_epley()
: Estimate max %1RM using the Epley's equation
max_perc_1RM_modified_epley()
: Estimate max %1RM using the Modified Epley's equation
max_perc_1RM_linear()
: Estimate max %1RM using the Linear (or Brzycki's) equation
# ------------------------------------------ # Epley equation max_perc_1RM_epley(1:10) max_perc_1RM_epley(1:10, k = 0.04) # ------------------------------------------ # Modified Epley equation max_perc_1RM_modified_epley(1:10) max_perc_1RM_modified_epley(1:10, kmod = 0.05) # ------------------------------------------ # Linear/Brzycki equation max_perc_1RM_linear(1:10) max_perc_1RM_linear(1:10, klin = 36)
# ------------------------------------------ # Epley equation max_perc_1RM_epley(1:10) max_perc_1RM_epley(1:10, k = 0.04) # ------------------------------------------ # Modified Epley equation max_perc_1RM_modified_epley(1:10) max_perc_1RM_modified_epley(1:10, kmod = 0.05) # ------------------------------------------ # Linear/Brzycki equation max_perc_1RM_linear(1:10) max_perc_1RM_linear(1:10, klin = 36)
Family of functions to estimate max number of repetition (nRM)
max_reps_epley(perc_1RM, k = 0.0333) max_reps_modified_epley(perc_1RM, kmod = 0.0353) max_reps_linear(perc_1RM, klin = 33)
max_reps_epley(perc_1RM, k = 0.0333) max_reps_modified_epley(perc_1RM, kmod = 0.0353) max_reps_linear(perc_1RM, klin = 33)
perc_1RM |
Numeric vector. % 1RM used (use 0.5 for 50 %, 0.9 for 90 %) |
k |
User defined |
kmod |
User defined |
klin |
User defined |
Numeric vector. Predicted maximal number of repetitions (nRM)
max_reps_epley()
: Estimate max number of repetition (nRM) using the Epley's equation
max_reps_modified_epley()
: Estimate max number of repetition (nRM) using the Modified Epley's equation
max_reps_linear()
: Estimate max number of repetition (nRM) using the Linear/Brzycki's equation
# ------------------------------------------ # Epley equation max_reps_epley(0.85) max_reps_epley(c(0.75, 0.85), k = 0.04) # ------------------------------------------ # Modified Epley equation max_reps_modified_epley(0.85) max_reps_modified_epley(c(0.75, 0.85), kmod = 0.05) # ------------------------------------------ # Linear/Brzycki's equation max_reps_linear(0.85) max_reps_linear(c(0.75, 0.85), klin = 36)
# ------------------------------------------ # Epley equation max_reps_epley(0.85) max_reps_epley(c(0.75, 0.85), k = 0.04) # ------------------------------------------ # Modified Epley equation max_reps_modified_epley(0.85) max_reps_modified_epley(c(0.75, 0.85), kmod = 0.05) # ------------------------------------------ # Linear/Brzycki's equation max_reps_linear(0.85) max_reps_linear(c(0.75, 0.85), klin = 36)
Function for creating ggplot2
plot of the Progression Table
plot_progression_table( progression_table, plot = "%1RM", signif_digits = 3, adjustment_multiplier = 1, font_size = 14, ... )
plot_progression_table( progression_table, plot = "%1RM", signif_digits = 3, adjustment_multiplier = 1, font_size = 14, ... )
progression_table |
Function for creating progression table |
plot |
Character string. Options include "%1RM" (default) and "adjustment" |
signif_digits |
Rounding numbers for plotting. Default is 3 |
adjustment_multiplier |
Factor to multiply the adjustment. Useful when converting to percentage. Default is 1 |
font_size |
Numeric. Default is 14 |
... |
Forwarded to the |
ggplot2
object
plot_progression_table(progression_RIR_increment, "%1RM", reps = 1:5) plot_progression_table(progression_RIR_increment, "adjustment", reps = 1:5) # Create progression pot by using specific reps-max table and klin value plot_progression_table( progression_RIR, reps = 1:5, max_perc_1RM_func = max_perc_1RM_linear, klin = 36 )
plot_progression_table(progression_RIR_increment, "%1RM", reps = 1:5) plot_progression_table(progression_RIR_increment, "adjustment", reps = 1:5) # Create progression pot by using specific reps-max table and klin value plot_progression_table( progression_RIR, reps = 1:5, max_perc_1RM_func = max_perc_1RM_linear, klin = 36 )
Functions for creating ggplot2
plot of the Set and Reps Scheme
plot_scheme(scheme, font_size = 8, perc_str = "%")
plot_scheme(scheme, font_size = 8, perc_str = "%")
scheme |
Data Frame create by one of the package functions. See examples |
font_size |
Numeric. Default is 8 |
perc_str |
Percent string. Default is "%". Use "" to have more space on graph |
ggplot2
object
scheme <- scheme_wave( reps = c(10, 8, 6, 10, 8, 6), # Adjusting sets to use lower %1RM (RIR Inc method used, so RIR adjusted) adjustment = c(4, 2, 0, 6, 4, 2), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_RIR_increment, progression_table_control = list(volume = "extensive") ) plot_scheme(scheme)
scheme <- scheme_wave( reps = c(10, 8, 6, 10, 8, 6), # Adjusting sets to use lower %1RM (RIR Inc method used, so RIR adjusted) adjustment = c(4, 2, 0, 6, 4, 2), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_RIR_increment, progression_table_control = list(volume = "extensive") ) plot_scheme(scheme)
Function for creating ggplot2
plot of the Vertical Planning function
plot_vertical(vertical_plan, reps = c(5, 5, 5), font_size = 14, ...)
plot_vertical(vertical_plan, reps = c(5, 5, 5), font_size = 14, ...)
vertical_plan |
Vertical Plan function |
reps |
Numeric vector |
font_size |
Numeric. Default is 14 |
... |
Forwarded to |
plot_vertical(vertical_block_undulating, reps = c(8, 6, 4))
plot_vertical(vertical_block_undulating, reps = c(8, 6, 4))
Function for creating ggplot2
plot of the Release STMr_release
object
## S3 method for class 'STMr_release' plot(x, font_size = 14, load_1RM_agg_func = max, ...)
## S3 method for class 'STMr_release' plot(x, font_size = 14, load_1RM_agg_func = max, ...)
x |
|
font_size |
Numeric. Default is 14 |
load_1RM_agg_func |
Function to aggregate step |
... |
Forwarded to |
ggplot2
object
scheme1 <- scheme_step(vertical_planning = vertical_constant) scheme2 <- scheme_step(vertical_planning = vertical_linear) scheme3 <- scheme_step(vertical_planning = vertical_undulating) release_df <- release( scheme1, scheme2, scheme3, additive_1RM_adjustment = 2.5 ) plot(release_df)
scheme1 <- scheme_step(vertical_planning = vertical_constant) scheme2 <- scheme_step(vertical_planning = vertical_linear) scheme3 <- scheme_step(vertical_planning = vertical_undulating) release_df <- release( scheme1, scheme2, scheme3, additive_1RM_adjustment = 2.5 ) plot(release_df)
Functions for creating ggplot2
plot of the Set and Reps Scheme
## S3 method for class 'STMr_scheme' plot(x, type = "bar", font_size = 14, perc_str = "%", ...)
## S3 method for class 'STMr_scheme' plot(x, type = "bar", font_size = 14, perc_str = "%", ...)
x |
|
type |
Type of plot. Options are "bar" (default), "vertical", and "fraction" |
font_size |
Numeric. Default is 14 |
perc_str |
Percent string. Default is "%". Use "" to have more space on graph |
... |
Forwarded to |
ggplot2
object
scheme <- scheme_wave( reps = c(10, 8, 6, 10, 8, 6), # Adjusting sets to use lower %1RM (RIR Inc method used, so RIR adjusted) adjustment = c(4, 2, 0, 6, 4, 2), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_RIR_increment, progression_table_control = list(volume = "extensive") ) plot(scheme) plot(scheme, type = "vertical") plot(scheme, type = "fraction")
scheme <- scheme_wave( reps = c(10, 8, 6, 10, 8, 6), # Adjusting sets to use lower %1RM (RIR Inc method used, so RIR adjusted) adjustment = c(4, 2, 0, 6, 4, 2), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_RIR_increment, progression_table_control = list(volume = "extensive") ) plot(scheme) plot(scheme, type = "vertical") plot(scheme, type = "fraction")
Release combines multiple schemes together with prescription_1RM
,
additive_1RM_adjustment
, and multiplicative_1RM_adjustment
parameters to calculate working weight
, load_1RM
, and
buffer
release( ..., prescription_1RM = 100, additive_1RM_adjustment = 2.5, multiplicative_1RM_adjustment = 1, rounding = 2.5, max_perc_1RM_func = max_perc_1RM_epley )
release( ..., prescription_1RM = 100, additive_1RM_adjustment = 2.5, multiplicative_1RM_adjustment = 1, rounding = 2.5, max_perc_1RM_func = max_perc_1RM_epley )
... |
|
prescription_1RM |
Initial prescription planning 1RM to calculate weight Default is 100 |
additive_1RM_adjustment |
Additive 1RM adjustment across phases. Default is 2.5 |
multiplicative_1RM_adjustment |
multiplicative 1RM adjustment across phases. Default is 1 (i.e., no adjustment) |
rounding |
Rounding for the calculated weight. Default is 2.5 |
max_perc_1RM_func |
Max Perc 1RM function to use when calculating
|
STMr_relase
data frame
scheme1 <- scheme_step(vertical_planning = vertical_constant) scheme2 <- scheme_step(vertical_planning = vertical_linear) scheme3 <- scheme_step(vertical_planning = vertical_undulating) release_df <- release( scheme1, scheme2, scheme3, additive_1RM_adjustment = 2.5 ) plot(release_df)
scheme1 <- scheme_step(vertical_planning = vertical_constant) scheme2 <- scheme_step(vertical_planning = vertical_linear) scheme3 <- scheme_step(vertical_planning = vertical_undulating) release_df <- release( scheme1, scheme2, scheme3, additive_1RM_adjustment = 2.5 ) plot(release_df)
A dataset containing reps to failure testing for 12 athletes using 70, 80, and 90% of 1RM
RTF_testing
RTF_testing
A data frame with 36 rows and 6 variables:
Name of the athlete; ID
Maximum weight the athlete can lift correctly for a single rep
%1RM we want to use for testing; 70, 80, or 90%
Estimated weight to be lifted
Weight that is estimated to be lifted, but rounded to closest 2.5
Recalculated %1RM after rounding the weight
Reps-to-failure (RTF), or the number of maximum repetitions (nRM) performed
Set and Rep Schemes
scheme_generic( reps, adjustment, vertical_planning, vertical_planning_control = list(), progression_table, progression_table_control = list() ) scheme_wave( reps = c(10, 8, 6), adjustment = -rev((seq_along(reps) - 1) * 5)/100, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_plateau( reps = c(5, 5, 5), vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_step( reps = c(5, 5, 5), adjustment = -rev((seq_along(reps) - 1) * 10)/100, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "intensive") ) scheme_step_reverse( reps = c(5, 5, 5), adjustment = -((seq_along(reps) - 1) * 10)/100, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "intensive") ) scheme_wave_descending( reps = c(6, 8, 10), adjustment = -rev((seq_along(reps) - 1) * 5)/100, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_light_heavy( reps = c(10, 5, 10, 5), adjustment = c(-0.1, 0)[(seq_along(reps)%%2) + 1], vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_pyramid( reps = c(12, 10, 8, 10, 12), adjustment = 0, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "extensive") ) scheme_pyramid_reverse( reps = c(8, 10, 12, 10, 8), adjustment = 0, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "extensive") ) scheme_rep_acc( reps = c(10, 10, 10), adjustment = 0, vertical_planning_control = list(step = rep(0, 4)), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_ladder( reps = c(3, 5, 10), adjustment = 0, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_manual( index = NULL, step, sets = 1, reps, adjustment = 0, perc_1RM = NULL, progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_perc_1RM(reps = c(5, 5, 5), perc_1RM = c(0.4, 0.5, 0.6), n_steps = 4)
scheme_generic( reps, adjustment, vertical_planning, vertical_planning_control = list(), progression_table, progression_table_control = list() ) scheme_wave( reps = c(10, 8, 6), adjustment = -rev((seq_along(reps) - 1) * 5)/100, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_plateau( reps = c(5, 5, 5), vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_step( reps = c(5, 5, 5), adjustment = -rev((seq_along(reps) - 1) * 10)/100, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "intensive") ) scheme_step_reverse( reps = c(5, 5, 5), adjustment = -((seq_along(reps) - 1) * 10)/100, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "intensive") ) scheme_wave_descending( reps = c(6, 8, 10), adjustment = -rev((seq_along(reps) - 1) * 5)/100, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_light_heavy( reps = c(10, 5, 10, 5), adjustment = c(-0.1, 0)[(seq_along(reps)%%2) + 1], vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_pyramid( reps = c(12, 10, 8, 10, 12), adjustment = 0, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "extensive") ) scheme_pyramid_reverse( reps = c(8, 10, 12, 10, 8), adjustment = 0, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "extensive") ) scheme_rep_acc( reps = c(10, 10, 10), adjustment = 0, vertical_planning_control = list(step = rep(0, 4)), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_ladder( reps = c(3, 5, 10), adjustment = 0, vertical_planning = vertical_constant, vertical_planning_control = list(), progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_manual( index = NULL, step, sets = 1, reps, adjustment = 0, perc_1RM = NULL, progression_table = progression_perc_drop, progression_table_control = list(volume = "normal") ) scheme_perc_1RM(reps = c(5, 5, 5), perc_1RM = c(0.4, 0.5, 0.6), n_steps = 4)
reps |
Numeric vector indicating reps prescription |
adjustment |
Numeric vector indicating adjustments. Forwarded to |
vertical_planning |
Vertical planning function. Default is |
vertical_planning_control |
Arguments forwarded to the |
progression_table |
Progression table function. Default is |
progression_table_control |
Arguments forwarded to the |
index |
Numeric vector. If not provided, index will be
create using sequence of |
step |
Numeric vector |
sets |
Numeric vector. Used to replicate reps and adjustments |
perc_1RM |
Numeric vector of user provided 1RM percentage |
n_steps |
How many progression steps to generate? Default is 4 |
Data frame with the following columns: reps
, index
, step
,
adjustment
, and perc_1RM
.
scheme_generic()
: Generic set and rep scheme.
scheme_generic
is called in all other set and rep schemes - only the default parameters
differ to make easier and quicker schemes writing and groupings
scheme_wave()
: Wave set and rep scheme
scheme_plateau()
: Plateau set and rep scheme
scheme_step()
: Step set and rep scheme
scheme_step_reverse()
: Reverse Step set and rep scheme
scheme_wave_descending()
: Descending Wave set and rep scheme
scheme_light_heavy()
: Light-Heavy set and rep scheme.
Please note that the adjustment
column in the output
will be wrong, hence set to NA
scheme_pyramid()
: Pyramid set and rep scheme
scheme_pyramid_reverse()
: Reverse Pyramid set and rep scheme
scheme_rep_acc()
: Rep Accumulation set and rep scheme
scheme_ladder()
: Ladder set and rep scheme.
Please note that the adjustment
column in the output
will be wrong, hence set to NA
scheme_manual()
: Manual set and rep scheme
scheme_perc_1RM()
: Manual %1RM set and rep scheme
scheme_generic( reps = c(8, 6, 4, 8, 6, 4), # Adjusting using lower %1RM (RIR Increment method used) adjustment = c(4, 2, 0, 6, 4, 2), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_RIR_increment, progression_table_control = list(volume = "extensive") ) # Wave set and rep schemes # -------------------------- scheme_wave() scheme_wave( reps = c(8, 6, 4, 8, 6, 4), # Second wave with higher intensity adjustment = c(-0.25, -0.15, 0.05, -0.2, -0.1, 0), vertical_planning = vertical_block, progression_table = progression_perc_drop, progression_table_control = list(type = "ballistic") ) # Adjusted second wave # and using 3 steps progression scheme_wave( reps = c(8, 6, 4, 8, 6, 4), # Adjusting using lower %1RM (progression_perc_drop method used) adjustment = c(0, 0, 0, -0.1, -0.1, -0.1), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_perc_drop, progression_table_control = list(volume = "extensive") ) # Adjusted using RIR inc # This time we adjust first wave as well, first two sets easier scheme <- scheme_wave( reps = c(8, 6, 4, 8, 6, 4), # Adjusting using lower %1RM (RIR Increment method used) adjustment = c(4, 2, 0, 6, 4, 2), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_RIR_increment, progression_table_control = list(volume = "extensive") ) plot(scheme) # Plateau set and rep schemes # -------------------------- scheme_plateau() scheme <- scheme_plateau( reps = c(3, 3, 3), progression_table_control = list(type = "ballistic") ) plot(scheme) # Step set and rep schemes # -------------------------- scheme_step() scheme <- scheme_step( reps = c(2, 2, 2), adjustment = c(-0.1, -0.05, 0), vertical_planning = vertical_linear_reverse, progression_table_control = list(type = "ballistic") ) plot(scheme) # Reverse Step set and rep schemes #- ------------------------- scheme <- scheme_step_reverse() plot(scheme) # Descending Wave set and rep schemes # -------------------------- scheme <- scheme_wave_descending() plot(scheme) # Light-Heavy set and rep schemes # -------------------------- scheme <- scheme_light_heavy() plot(scheme) # Pyramid set and rep schemes # -------------------------- scheme <- scheme_pyramid() plot(scheme) # Reverse Pyramid set and rep schemes # -------------------------- scheme <- scheme_pyramid_reverse() plot(scheme) # Rep Accumulation set and rep schemes # -------------------------- scheme_rep_acc() # Generate Wave scheme with rep accumulation vertical progression # This functions doesn't allow you to use different vertical planning # options scheme <- scheme_rep_acc(reps = c(10, 8, 6), adjustment = c(-0.1, -0.05, 0)) plot(scheme) # Other options is to use `.vertical_rep_accumulation.post()` and # apply it after # The default vertical progression is `vertical_const()` scheme <- scheme_wave(reps = c(10, 8, 6), adjustment = c(-0.1, -0.05, 0)) .vertical_rep_accumulation.post(scheme) # We can also create "undulating" rep decrements .vertical_rep_accumulation.post( scheme, rep_decrement = c(-3, -1, -2, 0) ) # `scheme_rep_acc` will not allow you to generate `scheme_ladder()` # and `scheme_scheme_light_heavy()` # You must use `.vertical_rep_accumulation.post()` to do so scheme <- scheme_ladder() scheme <- .vertical_rep_accumulation.post(scheme) plot(scheme) # Please note that reps < 1 are removed. If you do not want this, # use `remove_reps = FALSE` parameter scheme <- scheme_ladder() scheme <- .vertical_rep_accumulation.post(scheme, remove_reps = FALSE) plot(scheme) # Ladder set and rep schemes # -------------------------- scheme <- scheme_ladder() plot(scheme) # Manual set and rep schemes # -------------------------- scheme_df <- data.frame( index = 1, # Use this just as an example step = c(-3, -2, -1, 0), # Sets are just an easy way to repeat reps and adjustment sets = c(5, 4, 3, 2), reps = c(5, 4, 3, 2), adjustment = 0 ) # Step index is estimated to be sequences of steps # If you want specific indexes, use it as an argument (see next example) scheme <- scheme_manual( step = scheme_df$step, sets = scheme_df$sets, reps = scheme_df$reps, adjustment = scheme_df$adjustment ) plot(scheme) # Here we are going to provide our own index scheme <- scheme_manual( index = scheme_df$index, step = scheme_df$step, sets = scheme_df$sets, reps = scheme_df$reps, adjustment = scheme_df$adjustment ) plot(scheme) # More complicated example scheme_df <- data.frame( step = c(-3, -3, -3, -3, -2, -2, -2, -1, -1, 0), sets = 1, reps = c(5, 5, 5, 5, 3, 2, 1, 2, 1, 1), adjustment = c(0, -0.05, -0.1, -0.15, -0.1, -0.05, 0, -0.1, 0, 0) ) scheme_df scheme <- scheme_manual( step = scheme_df$step, sets = scheme_df$sets, reps = scheme_df$reps, adjustment = scheme_df$adjustment, # Select another progression table progression_table = progression_DI, # Extra parameters for the progression table progression_table_control = list( volume = "extensive", type = "ballistic", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) ) plot(scheme) # Provide %1RM manually scheme_df <- data.frame( index = rep(c(1, 2, 3, 4), each = 3), reps = rep(c(5, 5, 5), 4), perc_1RM = rep(c(0.4, 0.5, 0.6), 4) ) warmup_scheme <- scheme_manual( index = scheme_df$index, reps = scheme_df$reps, perc_1RM = scheme_df$perc_1RM ) plot(warmup_scheme) # Manual %1RM set and rep schemes # -------------------------- warmup_scheme <- scheme_perc_1RM( reps = c(10, 8, 6), perc_1RM = c(0.4, 0.5, 0.6), n_steps = 3 ) plot(warmup_scheme)
scheme_generic( reps = c(8, 6, 4, 8, 6, 4), # Adjusting using lower %1RM (RIR Increment method used) adjustment = c(4, 2, 0, 6, 4, 2), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_RIR_increment, progression_table_control = list(volume = "extensive") ) # Wave set and rep schemes # -------------------------- scheme_wave() scheme_wave( reps = c(8, 6, 4, 8, 6, 4), # Second wave with higher intensity adjustment = c(-0.25, -0.15, 0.05, -0.2, -0.1, 0), vertical_planning = vertical_block, progression_table = progression_perc_drop, progression_table_control = list(type = "ballistic") ) # Adjusted second wave # and using 3 steps progression scheme_wave( reps = c(8, 6, 4, 8, 6, 4), # Adjusting using lower %1RM (progression_perc_drop method used) adjustment = c(0, 0, 0, -0.1, -0.1, -0.1), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_perc_drop, progression_table_control = list(volume = "extensive") ) # Adjusted using RIR inc # This time we adjust first wave as well, first two sets easier scheme <- scheme_wave( reps = c(8, 6, 4, 8, 6, 4), # Adjusting using lower %1RM (RIR Increment method used) adjustment = c(4, 2, 0, 6, 4, 2), vertical_planning = vertical_linear, vertical_planning_control = list(reps_change = c(0, -2, -4)), progression_table = progression_RIR_increment, progression_table_control = list(volume = "extensive") ) plot(scheme) # Plateau set and rep schemes # -------------------------- scheme_plateau() scheme <- scheme_plateau( reps = c(3, 3, 3), progression_table_control = list(type = "ballistic") ) plot(scheme) # Step set and rep schemes # -------------------------- scheme_step() scheme <- scheme_step( reps = c(2, 2, 2), adjustment = c(-0.1, -0.05, 0), vertical_planning = vertical_linear_reverse, progression_table_control = list(type = "ballistic") ) plot(scheme) # Reverse Step set and rep schemes #- ------------------------- scheme <- scheme_step_reverse() plot(scheme) # Descending Wave set and rep schemes # -------------------------- scheme <- scheme_wave_descending() plot(scheme) # Light-Heavy set and rep schemes # -------------------------- scheme <- scheme_light_heavy() plot(scheme) # Pyramid set and rep schemes # -------------------------- scheme <- scheme_pyramid() plot(scheme) # Reverse Pyramid set and rep schemes # -------------------------- scheme <- scheme_pyramid_reverse() plot(scheme) # Rep Accumulation set and rep schemes # -------------------------- scheme_rep_acc() # Generate Wave scheme with rep accumulation vertical progression # This functions doesn't allow you to use different vertical planning # options scheme <- scheme_rep_acc(reps = c(10, 8, 6), adjustment = c(-0.1, -0.05, 0)) plot(scheme) # Other options is to use `.vertical_rep_accumulation.post()` and # apply it after # The default vertical progression is `vertical_const()` scheme <- scheme_wave(reps = c(10, 8, 6), adjustment = c(-0.1, -0.05, 0)) .vertical_rep_accumulation.post(scheme) # We can also create "undulating" rep decrements .vertical_rep_accumulation.post( scheme, rep_decrement = c(-3, -1, -2, 0) ) # `scheme_rep_acc` will not allow you to generate `scheme_ladder()` # and `scheme_scheme_light_heavy()` # You must use `.vertical_rep_accumulation.post()` to do so scheme <- scheme_ladder() scheme <- .vertical_rep_accumulation.post(scheme) plot(scheme) # Please note that reps < 1 are removed. If you do not want this, # use `remove_reps = FALSE` parameter scheme <- scheme_ladder() scheme <- .vertical_rep_accumulation.post(scheme, remove_reps = FALSE) plot(scheme) # Ladder set and rep schemes # -------------------------- scheme <- scheme_ladder() plot(scheme) # Manual set and rep schemes # -------------------------- scheme_df <- data.frame( index = 1, # Use this just as an example step = c(-3, -2, -1, 0), # Sets are just an easy way to repeat reps and adjustment sets = c(5, 4, 3, 2), reps = c(5, 4, 3, 2), adjustment = 0 ) # Step index is estimated to be sequences of steps # If you want specific indexes, use it as an argument (see next example) scheme <- scheme_manual( step = scheme_df$step, sets = scheme_df$sets, reps = scheme_df$reps, adjustment = scheme_df$adjustment ) plot(scheme) # Here we are going to provide our own index scheme <- scheme_manual( index = scheme_df$index, step = scheme_df$step, sets = scheme_df$sets, reps = scheme_df$reps, adjustment = scheme_df$adjustment ) plot(scheme) # More complicated example scheme_df <- data.frame( step = c(-3, -3, -3, -3, -2, -2, -2, -1, -1, 0), sets = 1, reps = c(5, 5, 5, 5, 3, 2, 1, 2, 1, 1), adjustment = c(0, -0.05, -0.1, -0.15, -0.1, -0.05, 0, -0.1, 0, 0) ) scheme_df scheme <- scheme_manual( step = scheme_df$step, sets = scheme_df$sets, reps = scheme_df$reps, adjustment = scheme_df$adjustment, # Select another progression table progression_table = progression_DI, # Extra parameters for the progression table progression_table_control = list( volume = "extensive", type = "ballistic", max_perc_1RM_func = max_perc_1RM_linear, klin = 36 ) ) plot(scheme) # Provide %1RM manually scheme_df <- data.frame( index = rep(c(1, 2, 3, 4), each = 3), reps = rep(c(5, 5, 5), 4), perc_1RM = rep(c(0.4, 0.5, 0.6), 4) ) warmup_scheme <- scheme_manual( index = scheme_df$index, reps = scheme_df$reps, perc_1RM = scheme_df$perc_1RM ) plot(warmup_scheme) # Manual %1RM set and rep schemes # -------------------------- warmup_scheme <- scheme_perc_1RM( reps = c(10, 8, 6), perc_1RM = c(0.4, 0.5, 0.6), n_steps = 3 ) plot(warmup_scheme)
A dataset containing strength training log for a single athlete. Strength training program
involves doing two strength training sessions, over 12 week (4 phases of 3 weeks each).
Session A involves linear wave-loading pattern starting with 2x12/10/8 reps and reaching 2x8/6/4 reps.
Session B involves constant wave-loading pattern using 2x3/2/1. This dataset contains weight
being used, as well as estimated reps-in-reserve (eRIR), which represent subjective rating
of the proximity to failure
strength_training_log
strength_training_log
A data frame with 144 rows and 8 variables:
Phase index number. Numeric from 1 to 4
Week index number (within phase). Numeric from 1 to 3
Day (total) index number. Numeric from 1 to 3
Name of the session. Can be "Session A" or "Session B"
Set index number. Numeric from 1 to 6
Weight in kg being used
Number of reps being done
Estimated reps-in-reserve
Functions for creating vertical planning (progressions)
vertical_planning(reps, reps_change = NULL, step = NULL) vertical_constant(reps, n_steps = 4) vertical_linear(reps, reps_change = c(0, -1, -2, -3)) vertical_linear_reverse(reps, reps_change = c(0, 1, 2, 3)) vertical_block(reps, step = c(-2, -1, 0, -3)) vertical_block_variant(reps, step = c(-2, -1, -3, 0)) vertical_rep_accumulation( reps, reps_change = c(-3, -2, -1, 0), step = c(0, 0, 0, 0) ) vertical_set_accumulation( reps, step = c(-2, -2, -2, -2), reps_change = rep(0, length(step)), accumulate_set = length(reps), set_increment = 1, sequence = TRUE ) vertical_set_accumulation_reverse( reps, step = c(-3, -2, -1, 0), reps_change = rep(0, length(step)), accumulate_set = length(reps), set_increment = 1, sequence = TRUE ) vertical_undulating(reps, reps_change = c(0, -2, -1, -3)) vertical_undulating_reverse(reps, reps_change = c(0, 2, 1, 3)) vertical_block_undulating( reps, reps_change = c(0, -2, -1, -3), step = c(-2, -1, -3, 0) ) vertical_volume_intensity(reps, reps_change = c(0, 0, -3, -3)) .vertical_rep_accumulation.post( scheme, rep_decrement = c(-3, -2, -1, 0), remove_reps = TRUE )
vertical_planning(reps, reps_change = NULL, step = NULL) vertical_constant(reps, n_steps = 4) vertical_linear(reps, reps_change = c(0, -1, -2, -3)) vertical_linear_reverse(reps, reps_change = c(0, 1, 2, 3)) vertical_block(reps, step = c(-2, -1, 0, -3)) vertical_block_variant(reps, step = c(-2, -1, -3, 0)) vertical_rep_accumulation( reps, reps_change = c(-3, -2, -1, 0), step = c(0, 0, 0, 0) ) vertical_set_accumulation( reps, step = c(-2, -2, -2, -2), reps_change = rep(0, length(step)), accumulate_set = length(reps), set_increment = 1, sequence = TRUE ) vertical_set_accumulation_reverse( reps, step = c(-3, -2, -1, 0), reps_change = rep(0, length(step)), accumulate_set = length(reps), set_increment = 1, sequence = TRUE ) vertical_undulating(reps, reps_change = c(0, -2, -1, -3)) vertical_undulating_reverse(reps, reps_change = c(0, 2, 1, 3)) vertical_block_undulating( reps, reps_change = c(0, -2, -1, -3), step = c(-2, -1, -3, 0) ) vertical_volume_intensity(reps, reps_change = c(0, 0, -3, -3)) .vertical_rep_accumulation.post( scheme, rep_decrement = c(-3, -2, -1, 0), remove_reps = TRUE )
reps |
Numeric vector indicating reps prescription |
reps_change |
Change in |
step |
Numeric vector indicating progression steps (i.e. -3, -2, -1, 0) |
n_steps |
Number of progression steps. Default is 4 |
accumulate_set |
Which set (position in |
set_increment |
How many sets to increase each step? Default is 1 |
sequence |
Should the sequence of accumulated sets be repeated, or individual sets? |
scheme |
Scheme generated by |
rep_decrement |
Rep decrements across progression step |
remove_reps |
Should < 1 reps be removed? |
Data frame with reps
, index
, and step
columns
vertical_planning()
: Generic Vertical Planning
vertical_constant()
: Constants Vertical Planning
vertical_linear()
: Linear Vertical Planning
vertical_linear_reverse()
: Reverse Linear Vertical Planning
vertical_block()
: Block Vertical Planning
vertical_block_variant()
: Block Variant Vertical Planning
vertical_rep_accumulation()
: Rep Accumulation Vertical Planning
vertical_set_accumulation()
: Set Accumulation Vertical Planning
vertical_set_accumulation_reverse()
: Set Accumulation Reverse Vertical Planning
vertical_undulating()
: Undulating Vertical Planning
vertical_undulating_reverse()
: Undulating Vertical Planning
vertical_block_undulating()
: Block Undulating Vertical Planning
vertical_volume_intensity()
: Volume-Intensity Vertical Planning
.vertical_rep_accumulation.post()
: Rep Accumulation Vertical Planning POST treatment
This functions is to be applied AFTER scheme is generated. Other options is to use
scheme_rep_acc
function, that is flexible enough to generate most options,
except for the scheme_ladder
and scheme_light_heavy
. Please note
that the adjustment
column in the output will be wrong, hence set to NA
# Generic vertical planning function # ---------------------------------- # Constant vertical_planning(reps = c(3, 2, 1), step = c(-3, -2, -1, 0)) # Linear vertical_planning(reps = c(5, 5, 5, 5, 5), reps_change = c(0, -1, -2)) # Reverse Linear vertical_planning(reps = c(5, 5, 5, 5, 5), reps_change = c(0, 1, 2)) # Block vertical_planning(reps = c(5, 5, 5, 5, 5), step = c(-2, -1, 0, -3)) # Block variant vertical_planning(reps = c(5, 5, 5, 5, 5), step = c(-2, -1, -3, 0)) # Undulating vertical_planning(reps = c(12, 10, 8), reps_change = c(0, -4, -2, -6)) # Undulating + Block variant vertical_planning( reps = c(12, 10, 8), reps_change = c(0, -4, -2, -6), step = c(-2, -1, -3, 0) ) # Rep accumulation # If used with `scheme_generic()` (or any other `scheme_`) it will provide wrong set and rep scheme. # Use `scheme_rep_acc()` instead, or apply `.vertical_rep_accumulation.post()` # function AFTER generating the scheme vertical_planning( reps = c(10, 8, 6), reps_change = c(-3, -2, -1, 0), step = c(0, 0, 0, 0) ) # Constant # ---------------------------------- vertical_constant(c(5, 5, 5), 4) vertical_constant(c(3, 2, 1), 2) plot_vertical(vertical_constant) # Linear # ---------------------------------- vertical_linear(c(10, 8, 6), c(0, -2, -4)) vertical_linear(c(5, 5, 5), c(0, -1, -2, -3)) plot_vertical(vertical_linear) # Reverse Linear # ---------------------------------- vertical_linear_reverse(c(6, 4, 2), c(0, 1, 2)) vertical_linear_reverse(c(5, 5, 5)) plot_vertical(vertical_linear_reverse) # Block # ---------------------------------- vertical_block(c(6, 4, 2)) plot_vertical(vertical_block) # Block Variant # ---------------------------------- vertical_block_variant(c(6, 4, 2)) plot_vertical(vertical_block_variant) # Rep Accumulation # ---------------------------------- # If used with `scheme_generic()` (or any other `scheme_`) it will provide wrong set and rep scheme. # Use `scheme_rep_acc()` instead, or apply `.vertical_rep_accumulation.post()` # function AFTER generating the scheme vertical_rep_accumulation(c(10, 8, 6)) plot_vertical(vertical_rep_accumulation) # Set Accumulation # ---------------------------------- # Default is accumulation of the last set vertical_set_accumulation(c(3, 2, 1)) # We can have whole sequence being repeated vertical_set_accumulation(c(3, 2, 1), accumulate_set = 1:3) # Or we can have accumulation of the individual sets vertical_set_accumulation(c(3, 2, 1), accumulate_set = 1:3, sequence = FALSE) # We can also have two or more sequences vertical_set_accumulation(c(10, 8, 6, 4, 2, 1), accumulate_set = c(1:2, 5:6)) # And also repeat the individual sets vertical_set_accumulation( c(10, 8, 6, 4, 2, 1), accumulate_set = c(1:2, 5:6), sequence = FALSE ) plot_vertical(vertical_set_accumulation) # Reverse Set Accumulation # ---------------------------------- # Default is accumulation of the last set vertical_set_accumulation_reverse(c(3, 2, 1)) # We can have whole sequence being repeated vertical_set_accumulation_reverse(c(3, 2, 1), accumulate_set = 1:3) # Or we can have accumulation of the individual sets vertical_set_accumulation_reverse(c(3, 2, 1), accumulate_set = 1:3, sequence = FALSE) # We can also have two or more sequences vertical_set_accumulation_reverse(c(10, 8, 6, 4, 2, 1), accumulate_set = c(1:2, 5:6)) # And also repeat the individual sets vertical_set_accumulation_reverse( c(10, 8, 6, 4, 2, 1), accumulate_set = c(1:2, 5:6), sequence = FALSE ) plot_vertical(vertical_set_accumulation_reverse) # Undulating # ---------------------------------- vertical_undulating(c(8, 6, 4)) # Reverse Undulating # ---------------------------------- vertical_undulating_reverse(c(8, 6, 4)) # Block Undulating # ---------------------------------- # This is a combination of Block Variant (undulation in the steps) and # Undulating (undulation in reps) vertical_block_undulating(c(8, 6, 4)) # Volume-Intensity # ---------------------------------- vertical_volume_intensity(c(6, 6, 6)) # Rep Accumulation # -------------------------- scheme_rep_acc() # Generate Wave scheme with rep accumulation vertical progression # This functions doesn't allow you to use different vertical planning # options scheme <- scheme_rep_acc(reps = c(10, 8, 6), adjustment = c(-0.1, -0.05, 0)) plot(scheme) # Other options is to use `.vertical_rep_accumulation.post()` and # apply it after # The default vertical progression is `vertical_const()` scheme <- scheme_wave(reps = c(10, 8, 6), adjustment = c(-0.1, -0.05, 0)) .vertical_rep_accumulation.post(scheme) # We can also create "undulating" rep decrements .vertical_rep_accumulation.post( scheme, rep_decrement = c(-3, -1, -2, 0) ) # `scheme_rep_acc` will not allow you to generate `scheme_ladder()` # and `scheme_scheme_light_heavy()` # You must use `.vertical_rep_accumulation.post()` to do so scheme <- scheme_ladder() scheme <- .vertical_rep_accumulation.post(scheme) plot(scheme) # Please note that reps < 1 are removed. If you do not want this, # use `remove_reps = FALSE` parameter scheme <- scheme_ladder() scheme <- .vertical_rep_accumulation.post(scheme, remove_reps = FALSE) plot(scheme)
# Generic vertical planning function # ---------------------------------- # Constant vertical_planning(reps = c(3, 2, 1), step = c(-3, -2, -1, 0)) # Linear vertical_planning(reps = c(5, 5, 5, 5, 5), reps_change = c(0, -1, -2)) # Reverse Linear vertical_planning(reps = c(5, 5, 5, 5, 5), reps_change = c(0, 1, 2)) # Block vertical_planning(reps = c(5, 5, 5, 5, 5), step = c(-2, -1, 0, -3)) # Block variant vertical_planning(reps = c(5, 5, 5, 5, 5), step = c(-2, -1, -3, 0)) # Undulating vertical_planning(reps = c(12, 10, 8), reps_change = c(0, -4, -2, -6)) # Undulating + Block variant vertical_planning( reps = c(12, 10, 8), reps_change = c(0, -4, -2, -6), step = c(-2, -1, -3, 0) ) # Rep accumulation # If used with `scheme_generic()` (or any other `scheme_`) it will provide wrong set and rep scheme. # Use `scheme_rep_acc()` instead, or apply `.vertical_rep_accumulation.post()` # function AFTER generating the scheme vertical_planning( reps = c(10, 8, 6), reps_change = c(-3, -2, -1, 0), step = c(0, 0, 0, 0) ) # Constant # ---------------------------------- vertical_constant(c(5, 5, 5), 4) vertical_constant(c(3, 2, 1), 2) plot_vertical(vertical_constant) # Linear # ---------------------------------- vertical_linear(c(10, 8, 6), c(0, -2, -4)) vertical_linear(c(5, 5, 5), c(0, -1, -2, -3)) plot_vertical(vertical_linear) # Reverse Linear # ---------------------------------- vertical_linear_reverse(c(6, 4, 2), c(0, 1, 2)) vertical_linear_reverse(c(5, 5, 5)) plot_vertical(vertical_linear_reverse) # Block # ---------------------------------- vertical_block(c(6, 4, 2)) plot_vertical(vertical_block) # Block Variant # ---------------------------------- vertical_block_variant(c(6, 4, 2)) plot_vertical(vertical_block_variant) # Rep Accumulation # ---------------------------------- # If used with `scheme_generic()` (or any other `scheme_`) it will provide wrong set and rep scheme. # Use `scheme_rep_acc()` instead, or apply `.vertical_rep_accumulation.post()` # function AFTER generating the scheme vertical_rep_accumulation(c(10, 8, 6)) plot_vertical(vertical_rep_accumulation) # Set Accumulation # ---------------------------------- # Default is accumulation of the last set vertical_set_accumulation(c(3, 2, 1)) # We can have whole sequence being repeated vertical_set_accumulation(c(3, 2, 1), accumulate_set = 1:3) # Or we can have accumulation of the individual sets vertical_set_accumulation(c(3, 2, 1), accumulate_set = 1:3, sequence = FALSE) # We can also have two or more sequences vertical_set_accumulation(c(10, 8, 6, 4, 2, 1), accumulate_set = c(1:2, 5:6)) # And also repeat the individual sets vertical_set_accumulation( c(10, 8, 6, 4, 2, 1), accumulate_set = c(1:2, 5:6), sequence = FALSE ) plot_vertical(vertical_set_accumulation) # Reverse Set Accumulation # ---------------------------------- # Default is accumulation of the last set vertical_set_accumulation_reverse(c(3, 2, 1)) # We can have whole sequence being repeated vertical_set_accumulation_reverse(c(3, 2, 1), accumulate_set = 1:3) # Or we can have accumulation of the individual sets vertical_set_accumulation_reverse(c(3, 2, 1), accumulate_set = 1:3, sequence = FALSE) # We can also have two or more sequences vertical_set_accumulation_reverse(c(10, 8, 6, 4, 2, 1), accumulate_set = c(1:2, 5:6)) # And also repeat the individual sets vertical_set_accumulation_reverse( c(10, 8, 6, 4, 2, 1), accumulate_set = c(1:2, 5:6), sequence = FALSE ) plot_vertical(vertical_set_accumulation_reverse) # Undulating # ---------------------------------- vertical_undulating(c(8, 6, 4)) # Reverse Undulating # ---------------------------------- vertical_undulating_reverse(c(8, 6, 4)) # Block Undulating # ---------------------------------- # This is a combination of Block Variant (undulation in the steps) and # Undulating (undulation in reps) vertical_block_undulating(c(8, 6, 4)) # Volume-Intensity # ---------------------------------- vertical_volume_intensity(c(6, 6, 6)) # Rep Accumulation # -------------------------- scheme_rep_acc() # Generate Wave scheme with rep accumulation vertical progression # This functions doesn't allow you to use different vertical planning # options scheme <- scheme_rep_acc(reps = c(10, 8, 6), adjustment = c(-0.1, -0.05, 0)) plot(scheme) # Other options is to use `.vertical_rep_accumulation.post()` and # apply it after # The default vertical progression is `vertical_const()` scheme <- scheme_wave(reps = c(10, 8, 6), adjustment = c(-0.1, -0.05, 0)) .vertical_rep_accumulation.post(scheme) # We can also create "undulating" rep decrements .vertical_rep_accumulation.post( scheme, rep_decrement = c(-3, -1, -2, 0) ) # `scheme_rep_acc` will not allow you to generate `scheme_ladder()` # and `scheme_scheme_light_heavy()` # You must use `.vertical_rep_accumulation.post()` to do so scheme <- scheme_ladder() scheme <- .vertical_rep_accumulation.post(scheme) plot(scheme) # Please note that reps < 1 are removed. If you do not want this, # use `remove_reps = FALSE` parameter scheme <- scheme_ladder() scheme <- .vertical_rep_accumulation.post(scheme, remove_reps = FALSE) plot(scheme)