我的函数fnEp_
带有data.table
列,data.table
和logical
类型。我试图让函数迭代eltIndexEnriched$Max
的每个元素(见下文)。它有效,但速度很慢。我想知道是否有更好的迭代方法或者设置方法可以让它更快。
我在EP_1
使用data.table
从名为fnEP_
的函数创建列lapply
:
eltIndexEnriched <- eltIndexEnriched[, EP_1 :=
lapply(Max, fnEp_, dt = eltIndexEnriched, Indemn_Bool = TRUE)]
fnEp_ <- function(Att_, dt, Indemn_Bool) {
if (Indemn_Bool == TRUE) {
retval <- (1 - exp(-1 * sum(dt$Rate * (ifelse(Att_ > dt$Max,
0, 1 - pbeta(Att_ / dt$Max, dt$Alpha, dt$Beta))))))
} else {
retval <- dt[Mean > Att_, 1 - exp(-1 * sum(Rate))]
}
return(retval)
}