当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R stepfun Step Functions - 创建和类


R语言 stepfun 位于 stats 包(package)。

说明

给定向量 (多一个值!),stepfun(x, y, ...) 返回一个插值 ‘step’ 函数,例如 fn 。即 (常量)对于 和横坐标值,如果(默认情况下) right = FALSE right = TRUE

上述常量 的值取决于 ‘continuity’ 参数 f 。默认情况下, right = FALSE, f = 0fn 是 cadlag 函数,即从右侧连续,从左侧限制,因此该函数在包括其左端点的区间上是分段常数。通常, 插值在相邻的 之间。因此,对于 f 的非 0 值,fn 可能不再是正确的阶跃函数,因为它可能从两侧不连续,除非 right = TRUE, f = 1 是 left-continuous (即常量块包含其右侧终点)。

用法

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, ...)

参数

x

给出 stepfun() 阶跃函数的结或跳跃位置的数值向量。对于其他函数,x 如下object

y

x 长一的数值向量,给出 x 值之间的函数值的高度。

f

0 到 1 之间的数字,指示应如何在给定 x 值之外进行插值。请参阅approxfun

ties

处理绑定的 x 值。函数或字符串 "ordered" 。请参阅approxfun

right

逻辑,指示间隔是否应在右侧关闭(并在左侧打开),反之亦然。

Fn, object

一个R对象继承自"stepfun".

digits

要使用的有效位数,请参阅print

...

潜在的进一步参数(通用要求)。

"stepfun" 的函数,例如 fn

有一些方法可用于汇总 ( "summary(.)" )、表示 ( "print(.)" ) 和绘制 ( "plot(.)" ,请参阅 plot.stepfun ) "stepfun" 对象。

fnenvironment包含了所有需要的信息;

"x","y"

原来的论点

"n"

结数(x 值)

"f"

连续性参数

"yleft", "yright"

结之外的函数值

"method"

(始终为 == "constant" ,来自 approxfun(.) )。

这些结也可以通过 knots(fn) 获得。

注意

类的对象"stepfun"不打算用于永久存储,并且可能会改变版本之间的结构R(并在R3.0.0)。它们通常可以通过以下方式重新创建

    eval(attr(old_obj, "call"), environment(old_obj))

因为所使用的数据被存储为对象环境的一部分。

例子

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
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

作者

Martin Maechler, maechler@stat.math.ethz.ch with some basic code from Thomas Lumley.

也可以看看

ecdf 用于将经验分布函数作为特殊阶跃函数,plot.stepfun 用于绘制阶跃函数。

approxfunsplinefun

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Step Functions - Creation and Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。