我需要在代码中放入分段函数并将生成的值存储在数据框中。规则如下:
- 我有一个由伯努利(1/3)生成的对象 X。
- 如果 X=0,另一个对象 Y 由 E = Exponential(1) 生成。
- 如果 X=1,如果 E <= P 则由 E 生成 Y,如果 E > P 则由 (P + EL) 生成,其中 P 是一个常数(例如 1),EL = Exponential(Lambda),独立于 E。
- 我想生成一个数据帧,其中包含使用此方法获得的 100 个 X 和 Y 样本,此外,执行此过程 10000 次(或者换句话说,生成 10000 个数据帧)。
我试图做这样的事情,但由于我是一个使用 R 的新手,我无法弄清楚如何正确定义每个元素,显然,如何将我的结果存储在数据框中。
这是我做的“代码”:
test <- function(lambda,p) {
for (i in 1:10000) { # Number of simulations that I want to do.
for(j in 1:100) { # Sample size of each simulation / data frame.
x <- rbinom(1,1,1/3)
e <- rexp(1,1)
if (x==0) {y <- e}
else {
if (e<=p) {y <- e}
else {y <- p + rexp(1, lambda)}
}
}
}
但即使在测试之前,我也知道它不可能正常工作。我只想制作的数据框可能包含 X 和 Y 的值。
我知道这可能是一个非常基本的问题,所以非常感谢您的回答。