我要写一个函数来计算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',但这不起作用.我哪里错了?
所以这是我的函数计算的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) & (x<1)) 0.3
else if ((1<=x) & (x<2)) 0.1
else if ((2<=x) & (x<3)) 0.25
else if ((3<=x) & (x<4)) 0.15
else if ((4<=x) & (x<5)) 0.2
else 0
}
Run Code Online (Sandbox Code Playgroud)
现在我将如何绘制y = fx?
我试过了:
x <- runif(n,0,5)
y <- fx(x)
plot(x, y, type='1', xlim=c(0,5), ylim=c(0,5))
Run Code Online (Sandbox Code Playgroud)
但是我得到一个'x'和'y'有不同长度的错误?
实验涉及滚动一个公平的模具并获得x说,然后抛出一个公平的硬币x次并记录尾巴的数量.我需要做50次这个实验并将结果记录在矢量中(我将用它绘制直方图.)
到目前为止这是我的代码:
for (i in 1:100)
{X <- sample(6,1,replace=TRUE,c(1,1,1,1,1,1)/6)
Y <- sample(2,1,replace=TRUE,c(1,1)/2)}
Youtcomes <- c(sum(Y))
Youtcomes
Run Code Online (Sandbox Code Playgroud)
但是我没有给我一个包含100个元素的向量,而是只获得一个数字.我哪里错了?
注意:我必须使用for循环.