Fixed handling of global

This commit is contained in:
Waldir Leoncio 2021-01-15 09:36:50 +01:00
parent d47b84fb55
commit 0de7026430
4 changed files with 24 additions and 13 deletions

View file

@ -10,11 +10,14 @@
#' @export
computePersonalAllFreqs <- function(ind, data, allFreqs, rowsFromInd) {
nloci <- ifelse(is.na(dim(COUNTS)[2]), 1, dim(COUNTS)[2])
npops <- ifelse(is.na(dim(COUNTS)[3]), 1, dim(COUNTS)[3])
if (is.null(dim(COUNTS))) {
nloci <- npops <- 1
} else {
nloci <- ifelse(is.na(dim(COUNTS)[2]), 1, dim(COUNTS)[2])
npops <- ifelse(is.na(dim(COUNTS)[3]), 1, dim(COUNTS)[3])
}
rows <- as.matrix(t(data))[computeRows(rowsFromInd, ind, 1), , drop = FALSE]
omaFreqs <- zeros(npops, rowsFromInd * nloci)
pointer <- 1
for (loc in 1:dim(rows)[2]) {

View file

@ -9,7 +9,11 @@
#' @param logml log maximum likelihood
#' @export
laskeMuutokset4 <- function (osuus, osuusTaulu, omaFreqs, logml) {
npops <- ifelse(is.na(dim(COUNTS)[3]), 1, dim(COUNTS)[3])
if (is.null(dim(COUNTS))) {
npops <- 1
} else {
npops <- ifelse(is.na(dim(COUNTS)[3]), 1, dim(COUNTS)[3])
}
notEmpty <- which(osuusTaulu > 0.005)
muutokset <- zeros(npops)
empties <- !notEmpty

View file

@ -5,14 +5,18 @@
#' @param indeksi index
#' @export
suoritaMuutos <- function (osuusTaulu, osuus, indeksi) {
npops <- ifelse(is.na(dim(COUNTS)[3]), 1, dim(COUNTS)[3])
if (is.null(dim(COUNTS))) {
npops <- 1
} else {
npops <- ifelse(is.na(dim(COUNTS)[3]), 1, dim(COUNTS)[3])
}
i1 <- indeksi %% npops
if (is.na(i1) | i1 == 0) i1 <- npops
i2 <- ceiling(indeksi / npops)
i1 <- indeksi %% npops
if (is.na(i1) | i1 == 0) i1 <- npops
i2 <- ceiling(indeksi / npops)
osuusTaulu[i1] <- osuusTaulu[i1] - osuus
osuusTaulu[i2] <- osuusTaulu[i2] + osuus
osuusTaulu[i1] <- osuusTaulu[i1] - osuus
osuusTaulu[i2] <- osuusTaulu[i2] + osuus
return (osuusTaulu)
return (osuusTaulu)
}

View file

@ -20,7 +20,7 @@ zeros_or_ones <- function(n, x) {
}
#' @title Matrix of zeros
#' @description wrapper of `zeros_or_ones()` that replicates the behavior of
#' @description wrapper of `zeros_or_ones()` that replicates the behavior of
#' the `zeros()` function on Matlab
#' @param n1 number of rows
#' @param n2 number of columns
@ -35,7 +35,7 @@ zeros <- function(n1, n2 = n1, ...) {
}
#' @title Matrix of ones
#' @description wrapper of `zeros_or_ones()` that replicates the behavior of
#' @description wrapper of `zeros_or_ones()` that replicates the behavior of
#' the `ones()` function on Matlab
#' @param n1 number of rows
#' @param n2 number of columns