Learn R Programming

respirometry (version 1.2.1)

calc_b: Calculate the metabolic scaling coefficient, b

Description

For most organisms, metabolic rate does not scale linearly, but rather according to a power function: \(MO2 = b0 * M^b\). This function estimates the scaling coefficient, b, and normalization constant, b0, given MO2s from different sized individuals.

Usage

calc_b(mass, MO2, method = "nls", plot = "linear")

Arguments

mass

a vector of animal masses.

MO2

a vector of metabolic rates.

method

a string defining which method of calculating scaling coefficients to use. Default is "nls", which utilizes a nonlinear least squares regression. If this does not fit your data well, "lm" may also be used, which calculates a linear regression of log10(MO2) ~ log10(mass) with slope and intercept equivalent to b and 10^b0, respectively.

plot

a string defining what kind of plot to display. "linear" for linear axes, "log" for log10-scale axes, and "none" for no plot. Default is "linear".

Value

Returns a list of 1) the b value, 2) a vector of b0 values corresponding to the input MO2 values, and 3) an average b0 that can be used for summarizing the relationship with an equation.

Details

$$MO2 = b0 * M^b$$ where b0 is species-specific normalization constant, M is mass and b is the scaling coefficient.

See Also

scale_MO2, calc_MO2

Examples

Run this code
# NOT RUN {
# Simple example
mass <- c(1, 10, 100, 1000, 40, 4, 400, 60, 2, 742, 266, 983) # made up values
MO2 <- mass ^ 0.65 + rnorm(n = length(mass)) # make up some data
calc_b(mass = mass, MO2 = MO2)

# How about some mass-specific MO2s?
msMO2 <- mass ^ -0.25 + rnorm(n = length(mass), sd = 0.05)
calc_b(mass = mass, MO2 = msMO2)
calc_b(mass = mass, MO2 = msMO2, plot = "log")

# }

Run the code above in your browser using DataLab