Title: Operations Designed for Tidy Strength Data
Version: 0.1.0
Description: Mappings for estimated one rep max from commonly used formulas. Convenience functions for turning mass/rep/set data into useful derived quantities.
License: GPL (≥ 3)
Encoding: UTF-8
RoxygenNote: 7.3.3
Depends: R (≥ 4.1)
LazyData: true
Imports: cli, dplyr, tibble, tidyr
Suggests: testthat (≥ 3.0.0)
Config/testthat/edition: 3
URL: https://github.com/alexpaynter/strength
BugReports: https://github.com/alexpaynter/strength/issues
NeedsCompilation: no
Packaged: 2026-02-20 19:14:11 UTC; alex
Author: Alex Paynter [aut, cre, cph]
Maintainer: Alex Paynter <apaynter@pm.me>
Repository: CRAN
Date/Publication: 2026-02-25 10:40:02 UTC

Create a mapping from reps and rpe to pct_1rm

Description

Create a mapping from reps and rpe to pct_1rm

Usage

create_map_rep_rpe_to_pct(pct_lookup_tab)

Arguments

pct_lookup_tab

A lookup table that contains columns reps, rpe and pct_1rm.

Value

A function taking arguments reps and rpe, returning a numeric vector.

Examples

resulting_function <- create_map_rep_rpe_to_pct(pct_lookup_rts)

Estimated one rep max

Description

Estimated one rep max

Usage

e1rm(weight, reps, rpe, pct1rm_func)

e1rm_rts(...)

e1rm_helms(...)

e1rm_brzycki(...)

Arguments

weight

Numeric vector of weights, one entry per set.

reps

Numeric vector of reps, one entry per set.

rpe

Numeric vector of RPEs, one entry per set.

pct1rm_func

A function which takes reps,rpe and returns an estimated percentage of one rep max.

...

Arguments passed to e1rm().

Value

A numeric vector of estimated one rep max values for each set.

Examples

e1rm(c(400, 300), c(1, 10), c(9, 6), pct1rm_rts)
e1rm_rts(c(400, 300), c(1, 10), c(9, 6))
e1rm_helms(c(400, 300), c(1, 10), c(9, 6))
e1rm_brzycki(c(400, 300), c(1, 10), c(9, 6))

Number of hard sets

Description

Number of hard sets

Usage

hard_sets(rpe, cutoff = 7)

Arguments

rpe

A numeric vector of set RPE values.

cutoff

RPE cutoff for what qualifies as a hard set. The boundary is included.

Value

A numeric value counting the number of hard sets.

Examples

hard_sets(c(6, 7, 10, 9, NA))

Mapping from reps and rpe to pct_1rm.

Description

pct1rm_rts() uses the table provided by reactive training systems. pct1rm_helms() uses the table provided in a paper by Helms and colleagues. pct1rm_brzycki() uses the table provided by Brzycki in his book.

Usage

pct1rm_rts(reps, rpe)

pct1rm_helms(reps, rpe)

pct1rm_brzycki(reps, rpe)

Arguments

reps

A vector of repetitions performed in a set.

rpe

A vector of ratings of perceived exertion.

Details

reps must be length 1 or the same length as rpe. RPE must be length 1 or the same length as reps.

Value

A numeric vector listing the percentage of one 1 rep max.

Examples

pct1rm_rts(reps = 10, rpe = 8)
resulting_function <- create_map_rep_rpe_to_pct(pct_lookup_rts)
pct1rm_helms(reps = 5, rpe = 8)
resulting_function <- create_map_rep_rpe_to_pct(pct_lookup_rts)
pct1rm_helms(reps = 5, rpe = 8)
resulting_function <- create_map_rep_rpe_to_pct(pct_lookup_brzycki)

Percentage lookup from Brzycki.

Description

Percentage lookup from Brzycki.

Usage

pct_lookup_brzycki

Format

pct_lookup_brzycki

A data frame with 135 rows and 3 columns:

reps

Number of reps performed

rpe

Rating of perceived exertion

pct_1rm

Percentage of one-repetition maximum associated with reps at rpe.

Source

Derived from rpe_tab_brzycki.


Percentage lookup from Helms and colleagues.

Description

Percentage lookup from Helms and colleagues.

Usage

pct_lookup_helms

Format

pct_lookup_helms

A data frame with 90 rows and 3 columns:

reps

Number of reps performed

rpe

Rating of perceived exertion

pct_1rm

Percentage of one-repetition maximum associated with reps at rpe.

Source

Derived from rpe_tab_helms.


Percentage lookup from reactive training systems (RTS)

Description

Percentage lookup from reactive training systems (RTS)

Usage

pct_lookup_rts

Format

pct_lookup_rts

A data frame with 165 rows and 5 columns:

reps

Number of reps performed

rpe

Rating of perceived exertion

pct_1rm

Percentage of one-repetition maximum associated with reps at rpe.

Source

Derived from rpe_tab_rts.


RPE table from Brzycki.

Description

RPE table from Brzycki.

Usage

rpe_tab_brzycki

Format

rpe_tab_brzycki

A dataframe with 9 rows and 16 columns.

RPE

The rating of perceived exertion

1

Estimated percentage of one rep max doing 1 rep at the RPE given by RPE.

2

Estimated percentage of one rep max doing 2 reps at the RPE given by RPE.

'

...

And so on...

Source

ISBN 978-1935628132, "A practical approach to strength training". This is a rep-max resource and we extended to RPE using the reps in reserve definition for RPE (see rep_tab_helms for a paper link that explains this.)


RPE table Helms and colleagues.

Description

RPE table Helms and colleagues.

Usage

rpe_tab_helms

Format

rpe_tab_helms

A dataframe with 10 rows and 11 columns.

RPE

The rating of perceived exertion

1

Estimated percentage of one rep max doing 1 rep at the RPE given by RPE.

2

Estimated percentage of one rep max doing 2 reps at the RPE given by RPE.

'

...

And so on...

Source

https://doi.org/10.1519/SSC.0000000000000218. Based on earlier work by Zourdos and Helms


RPE table RTS

Description

RPE table RTS

Usage

rpe_tab_rts

Format

rpe_tab_rts

A dataframe with 11 rows and 16 columns.

RPE

The rating of perceived exertion

1

Estimated percentage of one rep max doing 1 rep at the RPE given by RPE.

2

Estimated percentage of one rep max doing 2 reps at the RPE given by RPE.

'

...

And so on...

Source

Pulled from the TRAC system on Reactive Training Systems in Dec 2025


RPE table to lookup table

Description

RPE table to lookup table

Usage

rpe_tab_to_lookup(rpe_tab)

Arguments

rpe_tab

A tibble with columns RPE, 1, 2, 3, ... containing the percentage of one rep max associated with doing x reps at RPE rating of perceived exertion.

Value

A tibble with columns rpe, reps, pct_1rm.

Examples

rpe_tab_to_lookup(rpe_tab_rts)