From 48800268c403bd9817cf7240c8bee75f3da2aab6 Mon Sep 17 00:00:00 2001 From: David <david.dorchies@inrae.fr> Date: Sat, 30 Mar 2024 14:43:14 +0100 Subject: [PATCH] fix(getNodeRanking): case with 2 parallel upstream ungauged nodes Refs #130 --- R/CreateGRiwrm.R | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/R/CreateGRiwrm.R b/R/CreateGRiwrm.R index 4562900..6ff7945 100644 --- a/R/CreateGRiwrm.R +++ b/R/CreateGRiwrm.R @@ -146,11 +146,14 @@ getNodeRanking <- function(griwrm) { g <- g[!g$id %in% upIds, ] #Search for ungauged ids upIds <- unique(g$id[!g$id %in% g$down & g$id != g$donor]) - for(upId in upIds) { + while(length(upIds) > 0) { + upId <- upIds[1] #Browse the ungauged sub-network until the donor - g2 <- g %>% filter(donor == g$donor[g$id == upId]) + upDonor <- g$donor[g$id == upId] + g2 <- g %>% filter(donor == upDonor) g2$donor <- g2$id ungaugedIds <- getNodeRanking(g2) + upIds <- upIds[!upIds %in% ungaugedIds] r <- c(r, ungaugedIds) g <- g[!g$id %in% ungaugedIds, ] } -- GitLab