From de9683dd7de3f019015de758b0c0689520d73f9a Mon Sep 17 00:00:00 2001 From: Waldir Leoncio Date: Thu, 19 Nov 2020 08:09:04 +0100 Subject: [PATCH] Fixed global variable handling --- R/clearGlobalVars.R | 11 +++++----- R/globals.R | 1 + R/poistaLiianPienet.R | 2 +- R/poistaTyhjatPopulaatiot.R | 8 +++---- R/updateGlobalVariables.R | 44 ++++++++++++++++++------------------- 5 files changed, 33 insertions(+), 33 deletions(-) create mode 100644 R/globals.R diff --git a/R/clearGlobalVars.R b/R/clearGlobalVars.R index abc59fb..3a7746c 100644 --- a/R/clearGlobalVars.R +++ b/R/clearGlobalVars.R @@ -1,8 +1,7 @@ clearGlobalVars <- function() { - # COUNTS <- SUMCOUNTS <- PARTITION <- POP_LOGML <- vector() # placeholders - COUNTS <<- vector() - SUMCOUNTS <<- vector() - PARTITION <<- vector() - POP_LOGML <<- vector() - LOGDIFF <<- vector() + COUNTS <- vector() + SUMCOUNTS <- vector() + PARTITION <- vector() + POP_LOGML <- vector() + LOGDIFF <- vector() } \ No newline at end of file diff --git a/R/globals.R b/R/globals.R new file mode 100644 index 0000000..143c664 --- /dev/null +++ b/R/globals.R @@ -0,0 +1 @@ +utils::globalVariables(c("PARTITION", "COUNTS", "SUMCOUNTS", "LOGDIFF", "POP_LOGML")) \ No newline at end of file diff --git a/R/poistaLiianPienet.R b/R/poistaLiianPienet.R index 4ff581d..19eabea 100644 --- a/R/poistaLiianPienet.R +++ b/R/poistaLiianPienet.R @@ -41,7 +41,7 @@ poistaLiianPienet <- function (npops, rowsFromInd, alaraja, PARTITION[yksilot] == n } - # TODO: add COUNTS, SUMCOUNTS and PARTITION to return or use <<- + # TODO: add COUNTS, SUMCOUNTS and PARTITION to return or use <- COUNTS[, , miniPops] <- NA SUMCOUNTS[miniPops, ] <- NA diff --git a/R/poistaTyhjatPopulaatiot.R b/R/poistaTyhjatPopulaatiot.R index b811586..badef3e 100644 --- a/R/poistaTyhjatPopulaatiot.R +++ b/R/poistaTyhjatPopulaatiot.R @@ -2,13 +2,13 @@ poistaTyhjatPopulaatiot <- function(npops) { # % Poistaa tyhjentyneet populaatiot COUNTS:ista ja # % SUMCOUNTS:ista. P�ivitt�� npops:in ja PARTITION:in. notEmpty <- find(any(SUMCOUNTS, 2)) - COUNTS <<- COUNTS[, , notEmpty] - SUMCOUNTS <<- SUMCOUNTS[notEmpty, ] - LOGDIFF <<- LOGDIFF[, notEmpty] + COUNTS <- COUNTS[, , notEmpty] + SUMCOUNTS <- SUMCOUNTS[notEmpty, ] + LOGDIFF <- LOGDIFF[, notEmpty] for (n in 1:length(notEmpty)) { apu <- find(PARTITION == notEmpty(n)) - PARTITION(apu) <<- n + PARTITION[apu] <- n } npops <- length(notEmpty) return(npops) diff --git a/R/updateGlobalVariables.R b/R/updateGlobalVariables.R index 4b17469..1602faf 100644 --- a/R/updateGlobalVariables.R +++ b/R/updateGlobalVariables.R @@ -2,21 +2,21 @@ updateGlobalVariables <- function(ind, i2, diffInCounts, adjprior, priorTerm) { # % Suorittaa globaalien muuttujien muutokset, kun yksil� ind # % on siirret��n koriin i2. - i1 <- PARTITION(ind) - PARTITION(ind) <<- i2 + i1 <- PARTITION[ind] + PARTITION[ind] <- i2 - COUNTS[, , i1] <<- COUNTS[, , i1] - diffInCounts - COUNTS[, , i2] <<- COUNTS[, , i2] + diffInCounts - SUMCOUNTS[i1, ] <<- SUMCOUNTS[i1, ] - sum[diffInCounts] - SUMCOUNTS[i2, ] <<- SUMCOUNTS[i2, ] + sum[diffInCounts] + COUNTS[, , i1] <- COUNTS[, , i1] - diffInCounts + COUNTS[, , i2] <- COUNTS[, , i2] + diffInCounts + SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] - sum[diffInCounts] + SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] + sum[diffInCounts] - POP_LOGML[c(i1, i2)] <<- computePopulationLogml( + POP_LOGML[c(i1, i2)] <- computePopulationLogml( c(i1, i2), adjprior, priorTerm ) - LOGDIFF[, c(i1, i2)] <<- -Inf + LOGDIFF[, c(i1, i2)] <- -Inf inx <- c(find(PARTITION == i1), find(PARTITION==i2)) - LOGDIFF[inx, ] <<- -Inf + LOGDIFF[inx, ] <- -Inf } updateGlobalVariables2 <- function(i1, i2, diffInCounts, adjprior, priorTerm) { @@ -24,12 +24,12 @@ updateGlobalVariables2 <- function(i1, i2, diffInCounts, adjprior, priorTerm) { # % korissa i1 olevat yksil�t siirret��n koriin i2. inds <- find(PARTITION == i1) - PARTITION(inds) <<- i2 + PARTITION[inds] <- i2 - COUNTS[, , i1] <<- COUNTS[, , i1] - diffInCounts - COUNTS[, , i2] <<- COUNTS[, , i2] + diffInCounts - SUMCOUNTS[i1, ] <<- SUMCOUNTS[i1, ] - sum[diffInCounts] - SUMCOUNTS[i2, ] <<- SUMCOUNTS[i2, ] + sum[diffInCounts] + COUNTS[, , i1] <- COUNTS[, , i1] - diffInCounts + COUNTS[, , i2] <- COUNTS[, , i2] + diffInCounts + SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] - sum[diffInCounts] + SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] + sum[diffInCounts] POP_LOGML[i1] <- 0 POP_LOGML[i2] <- computePopulationLogml(i2, adjprior, priorTerm) @@ -47,18 +47,18 @@ updateGlobalVariables3 <- function( # % koriin. i1 <- PARTITION[muuttuvat(1)] - PARTITION[muuttuvat] <<- i2 + PARTITION[muuttuvat] <- i2 - COUNTS[, , i1] <<- COUNTS[, , i1] - diffInCounts - COUNTS[, , i2] <<- COUNTS[, , i2] + diffInCounts - SUMCOUNTS[i1, ] <<- SUMCOUNTS[i1, ] - sum[diffInCounts] - SUMCOUNTS[i2, ] <<- SUMCOUNTS[i2, ] + sum[diffInCounts] + COUNTS[, , i1] <- COUNTS[, , i1] - diffInCounts + COUNTS[, , i2] <- COUNTS[, , i2] + diffInCounts + SUMCOUNTS[i1, ] <- SUMCOUNTS[i1, ] - sum[diffInCounts] + SUMCOUNTS[i2, ] <- SUMCOUNTS[i2, ] + sum[diffInCounts] - POP_LOGML[c(i1, i2)] <<- computePopulationLogml( + POP_LOGML[c(i1, i2)] <- computePopulationLogml( c(i1, i2), adjprior, priorTerm ) - LOGDIFF[, c(i1, i2)] <<- -Inf + LOGDIFF[, c(i1, i2)] <- -Inf inx <- c(find(PARTITION == i1), find(PARTITION == i2)) - LOGDIFF[inx, ] <<- -Inf + LOGDIFF[inx, ] <- -Inf }