0
在我正在編程的模擬中,在每次迭代中,我需要計算數據幀中每行的一些隨機泊松數的總和,其中參數存儲在該行的另一列中。數據幀中隨機泊松數的和
這裏的數據(稱爲在下面的代碼「研究」)的一個樣本:
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]))
}
這確實這個工作,但考慮到數據框是數百行,而且我正在模擬數萬次,所以效率很低。
我覺得有一種方法可以使用其中一個應用函數來完成此操作,但我的經驗是有限的。有任何想法嗎?
沒時間像現在學習! :-)。 ''m_enroll < - mapply(function(x,y)sum(rpois(x,y)),Sites,enroll_rate)'#未經測試,但足夠接近讓您開始跑步 –
感謝Carl - 完美運作! – user1445246