如何使用if函数在r中创建随机损失样本

如何使用if函数在r中创建随机损失样本,r,if-statement,distribution,data-generation,beta-distribution,R,If Statement,Distribution,Data Generation,Beta Distribution,我目前正在为一个学校项目生成一些随机数据 我用二项分布在R中创建了一个变量,以确定观察值的损失是=1还是不是=0。 之后,我尝试使用随机分布为已经有损失(=1)的所有观测值生成损失量 由于我的损失金额是一个百分比,它可以在0到0之间的任何位置 在第三步中,我要寻找一个if语句,它结合了我的两个变量 请在下面找到我的代码(仅适用于Loss\u Y\N变量): 理想情况下,我可以将两者结合成类似 if(Loss_Y_N=1 then Loss_Amount=dbeta(...) #... is m

我目前正在为一个学校项目生成一些随机数据

我用二项分布在R中创建了一个变量,以确定观察值的损失是=1还是不是=0。 之后,我尝试使用随机分布为已经有损失(=1)的所有观测值生成损失量

由于我的损失金额是一个百分比,它可以在0到0之间的任何位置

在第三步中,我要寻找一个if语句,它结合了我的两个变量

请在下面找到我的代码(仅适用于Loss\u Y\N变量):

理想情况下,我可以将两者结合成类似

if(Loss_Y_N=1 then Loss_Amount=dbeta(...) #... is meant to be a random variable with mean=0.15 and should be 0<x=<1
else Loss_Amount=0) 

if(Loss_Y_N=1,那么Loss_Amount=dbeta(…)#…是一个均值为0.15的随机变量,应该为0为你的损失比例创建一个向量。用beta中的绘图填充与损失相对应的元素。调整beta的参数,直到得到所需的结果

N <- 100000
loss_indicator <- rbinom(N, 1, 0.1)
loss_prop <- numeric(N)
loss_prop[loss_indicator > 0] <- rbeta(sum(loss_indicator), 10, 990)

N因此,为了澄清,您需要生成一个介于0和1之间的随机数,其中包含一个特定的平均值?您可以编辑您的问题,将其指定为问题,并避免所有额外的fluffLoss_Amount=dbeta(…)*损失。无论何处,损失为0,损失金额将为0。谢谢你们的评论。非常感谢。请您解释一下,我应该在括号中添加什么内容,使损失分布在15%左右,但允许介于两者之间0@Ben是的,也许你是对的。实际上我只需要找出如何最好地模拟损失分布ibution介于0和100%之间,平均值为15%。我在Alex中编辑了您的评论,但由于我的代表级别仍然较低,因此必须对其进行审查。希望它能为其他人澄清问题谢谢您的评论-非常感谢。我不明白的是,当我遵循您的代码时,我没有得到任何完全丢失的观察结果(这意味着我的loss_prop变量应该在1左右?我解释的结果错了吗?@Alex_T_86 oops,省略了
>0
。现在试试。谢谢!现在我只需要处理一下参数-谢谢!
N <- 100000
loss_indicator <- rbinom(N, 1, 0.1)
loss_prop <- numeric(N)
loss_prop[loss_indicator > 0] <- rbeta(sum(loss_indicator), 10, 990)