Compute the area under the curve using linear or natural spline interpolation for two vectors where one corresponds to the x values and the other corresponds to the y values.
auc(x, y, from = min(x), to = max(x), type = c("linear", "spline"), absolutearea = FALSE, ...)
x | a numeric vector of x values. |
---|---|
y | a numeric vector of y values of the same length as x. |
from | The value from where to start calculating the area under the curve. Defaults to the smallest x value. |
to | The value from where to end the calculation of the area under the curve. Defaults to the smallest y value. |
type | The type of interpolation. Defaults to "linear" for area under the curve for linear interpolation. The value "spline" results in the area under the natural cubic spline interpolation. |
absolutearea | A logical value that determines if negative
areas should be added to the total area under the curve. By
default the auc function subtracts areas that have negative y
values. Set |
… | additional arguments passed on to approx. In particular rule can be set to determine how values outside the range of x is handled. |
The value of the area under the curve.
For linear interpolation the auc function computes the area under the curve using the composite trapezoid rule. For area under a spline interpolation, auc uses the splinefun function in combination with the integrate to calculate a numerical integral. The auc function can handle unsorted time values, missing observations, ties for the time values, and integrating over part of the area or even outside the area.
approx
, splinefun
,
integrate
x <- 1:4 y <- c(0, 1, 1, 5) auc(x, y)#> [1] 4.5# AUC from 0 to max(x) where we allow for extrapolation auc(x, y, from=0, rule=2)#> [1] 4.5# Use value 0 to the left auc(x, y, from=0, rule=2, yleft=0)#> [1] 4.5# Use 1/2 to the left auc(x, y, from=0, rule=2, yleft=.5)#> [1] 4.75# Use 1/2 to the left with spline interpolation auc(x, y, from=0, rule=2, yleft=.5)#> [1] 4.75