我试图说明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时,我在哪里犯了错误?我希望有一个有限的序列而不是一个数字。谢谢!
答案 0 :(得分:2)
问题是||
运算符只会查看z<b
和z==b
的第一个元素。这应该有效:
G2 <- function(z, a, b, alpha)
ifelse(z<=b, 0,exp(-((z-b)/a)^(-alpha)))