R的stepfun函数的用法

关于stepfun, 首先说它的必要参数. 再说它的两个重要参数.
这个函数, 最好的说明方式就是画图. 图在后面.

它的必要参数是两个向量, x,y. 意义是横坐标和纵坐标. 其中x必须是一个升序的向量, 经常是sort(x)的写法. y的长度比x大1. 对应关系是怎样的呢?
x[1]对应y[2], 一直到x[n]对应y[n+1]. 而>x[n], 仍然为y[n+1]. 小于x[1]时为y[1], 这就是为什么y的长度比x大1.

然后说它的2个参数. f和right.

f是在控制啥呢, 在x那几个点, y是确定的, f控制的是它们之间的. 具体来说, x的相邻两点之间, 是f右边的点对应的y+(1-f)左边的点对应的y.
比如这段代码(example给出的代码)

y0 <- c(1., 2., 4., 3.)
sfun0 <- stepfun(1:3, y0, f = 0)
sfun.2 <- stepfun(1:3, y0, f = 0.2)
sfun1 <- stepfun(1:3, y0, f = 1)
sfun1c <- stepfun(1:3, y0, right = TRUE) # hence f=1


可以看到, f=0时, 两个点之间和左边的一样(右连续), f=1, 和右边一样(左连续).

而f在0到1之间呢, 看下面这个图, 1和2之间, 是0.82+0.24=2.4

再说right参数是干啥的. 之前我们说了对应关系. 如果right=F(默认), 那么

也就是说, 之前y的第一个是留给<x[1]的, 而x[n](假设n是x的长度), 会被迫与x[n-1]的一样. 现在<x[1]的与x[1]一样, y多出来的一个, 在这时也就是最后一个, 对应的是x>x[n]的.

原文地址:https://www.cnblogs.com/Tokubara/p/14091019.html