From 19e487ca43962b47d2deb2cde03f9dbdf0f6e985 Mon Sep 17 00:00:00 2001 From: wlandau Date: Fri, 10 Jan 2025 09:05:01 -0500 Subject: [PATCH] optimize lookup loops --- R/class_lookup.R | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/R/class_lookup.R b/R/class_lookup.R index 663203b00..42ebd187a 100644 --- a/R/class_lookup.R +++ b/R/class_lookup.R @@ -23,14 +23,20 @@ lookup_count <- function(lookup) { } lookup_set <- function(lookup, names, object) { - for (name in names) { - lookup[[name]] <- object + index <- 1L + n <- length(names) + while (index <= n) { + lookup[[.subset(names, index)]] <- object + index <- index + 1L } } lookup_unset <- function(lookup, names) { - for (name in names) { - lookup[[name]] <- NULL + index <- 1L + n <- length(names) + while (index <= n) { + lookup[[.subset(names, index)]] <- NULL + index <- index + 1L } }