Wbal_ {cycleRtools} | R Documentation

## W' balance.

### Description

Generate a vector of W' balance values from time and power data. The underlying algorithm is published in Skiba et al. (2012). `Wbal` is a wrapper for the Rcpp function `Wbal_`.

### Usage

    Wbal_(t, P, CP)

    Wbal(data, time = "timer.s", pwr = "power.smooth.W", CP = attr(data,
      "CP"), noisy = TRUE, character.only = FALSE)

### Arguments

`t, P` | numeric vectors of time and power, respectively.
`CP` | a critical power value for use in the calculation.
`data` | a data.frame/matrix object with time and power columns.
`time` | character; name of the time (seconds) column in `data`.
`pwr` | character; name of the power (watts) column in `data`.
`noisy` | logical; create smoother data by pooling power data into sub- and supra-CP sections.
`character.only` | are column name arguments given as character strings? A backdoor around non-standard evaluation.

### Details

The algorithm used here, while based on Dr Phil Skiba's model, differs in that values are positive as opposed to negative. The original published model expressed W' balance as W' minus W' expended, the latter recovering with an exponential time course when P < CP. An issue with this approach is that an athlete might be seen to go into negative W' balance. Hence, to avoid assumptions regarding available W', this algorithm returns W' expended (and its recovery) as positive values; i.e. a ride is begun at 0 W' expended, and it will increase in response to supra-CP efforts.

It is advisable on physiological grounds to enter smoothed power values to the function, hence this is the default behaviour. If nothing else, this prevents an unrealistic inflation of W' values that are inconsistent with estimates derived from power-time modelling.

The essence of the algorithm can be seen in the function test file.

Note that if there are `NA` values in the power column, these are ignored and the correspoding W' expended value assumes that of the last available power value. `NA` values are not allowed in the time column.

### Value

A numeric vector of W' balance values, in kilojoules or joules for `Wbal` or `Wbal_` respectively.

### References

Skiba, P. F., W. Chidnok, A. Vanhatalo, and A. M. Jones. Modeling the Expenditure and Reconstitution of Work Capacity above Critical Power. Med. Sci. Sports Exerc., Vol. 44, No. 8, pp. 1526-1532, 2012. PubMed link.

### See Also

`plot.cycleRdata`.

### Examples

    ## Not run:
    data(ridedata)

    ## Basic usage.
    ridedata$Wexp.kJ <- Wbal(ridedata, timer.s, power.W, 310)

    ## Data can be noisy or "smooth"; e.g.
    Wbal_noisy <- Wbal(ridedata, timer.s, power.W, 310, noisy = TRUE)
    Wbal_smth  <- Wbal(ridedata, timer.s, power.W, 310, noisy = FALSE)

    ## Plot:
    ylim <- rev(extendrange(Wbal_noisy))  # Reverse axes.

    plot(ridedata$timer.min, Wbal_noisy, type = "l", ylim = ylim,
         main = "NOISY")
    plot(ridedata$timer.min, Wbal_smth, type = "l", ylim = ylim,
         main = "Smooooth")

    ## Example of NA handling.
    d <- data.frame(t = seq_len(20), pwr = rnorm(20, 300, 50), Wexp.J = NA)
    d[14:16, "pwr"] <- NA
    d[, "Wexp.J"]   <- Wbal(d, "t", "pwr", CP = 290)
    print(d)

    ## Using underlying Rcpp function:
    Wbal_(t = 1:20, P = rnorm(20, 300, 50), CP = 300)  # Values are in joules.

    ## End(Not run)

[Package cycleRtools version 1.1.1 Index]