ourMELONS/R/computeIndLogml.R

26 lines
725 B
R

#' @title computeIndLogml
#' @description Palauttaa yksilön logml:n, kun oletetaan yksilön alkuperät
#' määritellyiksi kuten osuusTaulu:ssa.
#' @param omaFreqs own Freqs?
#' @param osuusTaulu Percentage table?
computeIndLogml <- function(omaFreqs, osuusTaulu) {
omaFreqs <- as.matrix(omaFreqs)
osuusTaulu <- as.matrix(osuusTaulu)
apu <- repmat(t(osuusTaulu), c(1, dim(omaFreqs)[2]))
apu <- times(apu, omaFreqs) # c() avoids deprecation error re. matrix ops
if (length(apu) > 1) {
apu <- colSums(as.matrix(apu))
} else {
apu <- sum(apu)
}
if (any(apu < 0)) {
# Workaround for log of a negative number
apu <- as.complex(apu)
}
apu <- log(apu)
loggis <- sum(apu)
return(loggis)
}