Translated returnInOrder

This commit is contained in:
Waldir Leoncio 2020-11-09 08:41:41 +01:00
parent 7113162566
commit 1dabea0c4c
2 changed files with 26 additions and 51 deletions

View file

@ -630,30 +630,6 @@ indMix <- function(c, npops, dispText) {
# apu = (apu(:,1)-1).*ninds - apu(:,1) ./ 2 .* (apu(:,1)-1) + (apu(:,2)-apu(:,1)); # apu = (apu(:,1)-1).*ninds - apu(:,1) ./ 2 .* (apu(:,1)-1) + (apu(:,2)-apu(:,1));
# dist2 = dist(apu); # dist2 = dist(apu);
# %-----------------------------------------------------------------------------------
# function npops = poistaTyhjatPopulaatiot(npops)
# % Poistaa tyhjentyneet populaatiot COUNTS:ista ja
# % SUMCOUNTS:ista. P<>ivitt<74><74> npops:in ja PARTITION:in.
# global COUNTS;
# global SUMCOUNTS;
# global PARTITION;
# global LOGDIFF;
# notEmpty = find(any(SUMCOUNTS,2));
# COUNTS = COUNTS(:,:,notEmpty);
# SUMCOUNTS = SUMCOUNTS(notEmpty,:);
# LOGDIFF = LOGDIFF(:,notEmpty);
# for n=1:length(notEmpty)
# apu = find(PARTITION==notEmpty(n));
# PARTITION(apu)=n;
# end
# npops = length(notEmpty);
# %--------------------------------------------------------- # %---------------------------------------------------------
# function T = cluster_own(Z,nclust) # function T = cluster_own(Z,nclust)
@ -704,30 +680,3 @@ indMix <- function(c, npops, dispText) {
# % Move to next level # % Move to next level
# k = children(~t) - m; # k = children(~t) - m;
# end # end
# %--------------------------------------------------------------------------
# function inds = returnInOrder(inds, pop, globalRows, data, ...
# adjprior, priorTerm)
# % Palauttaa yksil<69>t j<>rjestyksess<73> siten, ett<74> ensimm<6D>isen<65> on
# % se, jonka poistaminen populaatiosta pop nostaisi logml:n
# % arvoa eniten.
# global COUNTS; global SUMCOUNTS;
# ninds = length(inds);
# apuTaulu = [inds, zeros(ninds,1)];
# for i=1:ninds
# ind =inds(i);
# rows = globalRows(i,1):globalRows(i,2);
# diffInCounts = computeDiffInCounts(rows, size(COUNTS,1), size(COUNTS,2), data);
# diffInSumCounts = sum(diffInCounts);
# COUNTS(:,:,pop) = COUNTS(:,:,pop)-diffInCounts;
# SUMCOUNTS(pop,:) = SUMCOUNTS(pop,:)-diffInSumCounts;
# apuTaulu(i, 2) = computePopulationLogml(pop, adjprior, priorTerm);
# COUNTS(:,:,pop) = COUNTS(:,:,pop)+diffInCounts;
# SUMCOUNTS(pop,:) = SUMCOUNTS(pop,:)+diffInSumCounts;
# end
# apuTaulu = sortrows(apuTaulu,2);
# inds = apuTaulu(ninds:-1:1,1);

26
R/returnInOrder.R Normal file
View file

@ -0,0 +1,26 @@
returnInOrder <- function(inds, pop, globalRows, data, adjprior, priorTerm) {
# % Palauttaa yksil<69>t j<>rjestyksess<73> siten, ett<74> ensimm<6D>isen<65> on
# % se, jonka poistaminen populaatiosta pop nostaisi logml:n
# % arvoa eniten.
ninds <- length(inds)
apuTaulu <- [inds, zeros(ninds,1)];
for (i in 1:ninds) {
ind <- inds[i]
rows <- globalRows[i, 1]:globalRows[i, 2]
diffInCounts <- computeDiffInCounts(
rows, size[COUNTS, 1], size[COUNTS, 2], data
)
diffInSumCounts <- sum(diffInCounts)
COUNTS[ , ,pop] <- COUNTS[ , ,pop] - diffInCounts
SUMCOUNTS[pop, ] <- SUMCOUNTS[pop, ] - diffInSumCounts
apuTaulu[i, 2] <- computePopulationLogml(pop, adjprior, priorTerm)
COUNTS[ , ,pop] <- COUNTS[ , ,pop] + diffInCounts
SUMCOUNTS[pop, ] <- SUMCOUNTS[pop, ] + diffInSumCounts
}
apuTaulu <- sortrows(apuTaulu, 2)
inds <- apuTaulu[ninds:1, 1]
return(inds)
}