Mat*_*ete 1 r function probability
我要写一个函数来计算PDF,并且有人建议我使用if/elseif/else语句.但是每当我尝试这样做时,我都会收到错误消息,但我不确定我做错了什么?
这是函数应该计算的PDF:
fx = 0.3 if(0 <= x <1)
0.1 if(1 <= x <2)
0.25 if(2 <= x <3)
0.15 if(3 <= x <4)
0.2 if(4 <= x <5)
0否则
这是我的代码:
fx = function(x)
{
if (0<=x<1) {
pdf=0.3
} elseif (1<=x<2) {
pdf=0.1
} elseif (2<=x<3) {
pdf=0.25
} elseif (3<=x<4) {
pdf=0.15
} elseif (4<=x<5) {
pdf=0.2
} else
pdf=0
pdf
}
Run Code Online (Sandbox Code Playgroud)
我检查了我的'}',但它们看起来都很合适.我已经尝试将'pdf'更改为'fx',但这不起作用.我哪里错了?
fx <- function(x) c(0, 0.3,0.1,0.25,0.15,0.20, 0)[findInterval(x, c(-Inf, 0:5, Inf))]
Run Code Online (Sandbox Code Playgroud)
该findInterval
函数从第二个参数定义的区间序列中返回其第一个参数的位置,并可用于从向量中选择概率.支持域之外的值将根据请求选择为0值.在下限被关闭的情况下,它特别有用,因为cut
函数的默认值是上限为闭合.