當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。