在我正在编程的模拟中,在每次迭代中,我需要为数据帧中的每一行计算一些随机泊松数的总和,其中参数存储在该行的另一列中。
这是数据示例(在下面的代码中称为“研究”):
phase Sites enroll_rate rec_months stud_months enrolled m_enroll
51 2 1 2.95920139 2.0000000 5.000000 6 0
52 2 24 0.20784867 2.0000000 5.000000 10 0
53 2 3 0.46501736 3.0000000 6.000000 2 0
54 2 2 1.40480769 3.0000000 6.000000 7 0
55 2 1 1.31299020 5.0000000 7.000000 3 0
64 2 29 0.04373204 0.9712526 1.971253 2 0
这是我用来实现此目的的代码:
for (j in 1:nrow(studies)) {
studies$m_enroll[j] <- sum(rpois(studies$Sites[j],studies$enroll_rate[j]))
}
这可以完成工作,但考虑到数据框有数百行并且我正在做这个模拟数万次,它的效率非常低。
我觉得有一种方法可以使用其中一个 apply 函数来做到这一点,但我对它们的经验是有限的。有任何想法吗?