我有这个我正在使用的代码,它有很多for循环。以下是代码的一部分,由于尺寸的原因,最容易进行优化。
calcobj_i <- function (X, iter, pa)
{
ww = rep(0, pa$n)
for (k in 1:pa$K) {
w = iter$cw[k] *
dmnorm(X, iter$center[k,], iter$Lambda[,,k] %*%
t(iter$Lambda[,,k]) + iter$Psi[,,k])
w = w*(w>=0)
ww = w+ww
}
}
此处iter
和pa
是包含向量和矩阵的列表,例如lambda
,cw
,center
和Psi
,其中包含上述尺寸而X
是一个矩阵。 dmnorm
是多元正态密度函数,它给出了一个值向量。
我想知道如何在这些类型的函数中使用apply
,lapply
或任何其他转换。