stepfun package:stats R Documentation _S_t_e_p _F_u_n_c_t_i_o_n _C_l_a_s_s _D_e_s_c_r_i_p_t_i_o_n: Given the vectors (x[1],..., x[n]) and (y[0],y[1],..., y[n]) (one value more!), 'stepfun(x,y,...)' returns an interpolating 'step' function, say 'fn'. I.e., fn(t) = c[i] (constant) for t in ( x[i], x[i+1]) and at the abscissa values, if (by default) 'right = FALSE', fn(x[i]) = y[i] and for 'right = TRUE', fn(x[i]) = y[i-1], for i=1,...,n. The value of the constant c[i] above depends on the 'continuity' parameter 'f'. For the default, 'right = FALSE, f = 0', 'fn' is a _cadlag_ function, i.e., continuous at right, limit ('the point') at left. In general, c[i] is interpolated in between the neighbouring y values, c[i] = (1-f)*y[i] + f*y[i+1]. Therefore, for non-0 values of 'f', 'fn' may no longer be a proper step function, since it can be discontinuous from both sides, unless 'right = TRUE, f = 1' which is right-continuous. _U_s_a_g_e: stepfun(x, y, f = as.numeric(right), ties = "ordered", right = FALSE) is.stepfun(x) knots(Fn, ...) as.stepfun(x, ...) ## S3 method for class 'stepfun': print(x, digits = getOption("digits") - 2, ...) ## S3 method for class 'stepfun': summary(object, ...) _A_r_g_u_m_e_n_t_s: x: numeric vector giving the knots or jump locations of the step function for 'stepfun()'. For the other functions, 'x' is as 'object' below. y: numeric vector one longer than 'x', giving the heights of the function values _between_ the x values. f: a number between 0 and 1, indicating how interpolation outside the given x values should happen. See 'approxfun'. ties: Handling of tied 'x' values. Either a function or the string '"ordered"'. See 'approxfun'. right: logical, indicating if the intervals should be closed on the right (and open on the left) or vice versa. Fn, object: an R object inheriting from '"stepfun"'. digits: number of significant digits to use, see 'print'. ...: potentially further arguments (required by the generic). _V_a_l_u_e: A function of class '"stepfun"', say 'fn'. There are methods available for summarizing ('"summary(.)"'), representing ('"print(.)"') and plotting ('"plot(.)"', see 'plot.stepfun') '"stepfun"' objects. The 'environment' of 'fn' contains all the information needed; "x","y": the original arguments "n": number of knots (x values) "f": continuity parameter "yleft", "yright": the function values _outside_ the knots "method": (always '== "constant"', from 'approxfun(.)'). The knots are also available via 'knots(fn)'. _A_u_t_h_o_r(_s): Martin Maechler, maechler@stat.math.ethz.ch with some basic code from Thomas Lumley. _S_e_e _A_l_s_o: 'ecdf' for empirical distribution functions as special step functions and 'plot.stepfun' for _plotting_ step functions. 'approxfun' and 'splinefun'. _E_x_a_m_p_l_e_s: y0 <- c(1.,2.,4.,3.) sfun0 <- stepfun(1:3, y0, f = 0) sfun.2 <- stepfun(1:3, y0, f = .2) sfun1 <- stepfun(1:3, y0, f = 1) sfun1c <- stepfun(1:3, y0, right=TRUE)# hence f=1 sfun0 summary(sfun0) summary(sfun.2) ## look at the internal structure: unclass(sfun0) ls(envir = environment(sfun0)) x0 <- seq(0.5,3.5, by = 0.25) rbind(x=x0, f.f0 = sfun0(x0), f.f02= sfun.2(x0), f.f1 = sfun1(x0), f.f1c = sfun1c(x0)) ## Identities : stopifnot(identical(y0[-1], sfun0 (1:3)),# right = FALSE identical(y0[-4], sfun1c(1:3)))# right = TRUE