这两个R函数之间的区别

时间:2015-01-14 23:23:52

标签: r

我试图说明R中的三种极值分布。

对于类型1,分配函数如下。

在R中我写了以下几行。

G1 <- function(z, a, b){
  x = (b-z)/a
  y = exp(-exp(x))
  y
}

G1(-3:3, 2, 3)

我得到了我想要的东西,即有限的数字序列。

 [1] 1.89e-09 5.12e-06 6.18e-04 1.13e-02 6.60e-02 1.92e-01 3.68e-01

对于类型2,分布函数如下。

在R中我写了以下几行。

G2 <- function(z, a, b, alpha){
  if(z<b||z==b){
    0
  } else {
    x = -((z-b)/a)^{-alpha}
    y = exp(x)
    y
  }
}

G2(-3:3, 2, 3, 4)

但是,这次我只有一个号码。

[1] 0

在编写第二个功能G2时,我在哪里犯了错误?我希望有一个有限的序列而不是一个数字。谢谢!

1 个答案:

答案 0 :(得分:2)

问题是||运算符只会查看z<bz==b的第一个元素。这应该有效:

G2 <- function(z, a, b, alpha)
    ifelse(z<=b, 0,exp(-((z-b)/a)^(-alpha)))