Skip to content

Commit d0a5495

Browse files
authored
Merge pull request #776 from m-muecke/perf/scale
perf: improve scale performance by using min/max directly instead of range/diff
2 parents 11b8193 + c36a389 commit d0a5495

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

R/PipeOpScaleRange.R

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,10 @@ PipeOpScaleRange = R6Class("PipeOpScaleRange",
7171

7272
.get_state_dt = function(dt, levels, target) {
7373
lapply(dt, function(x) {
74-
rng = range(x, na.rm = TRUE, finite = TRUE)
75-
scale = (self$param_set$values$upper - self$param_set$values$lower) / diff(rng)
76-
offset = -rng[1L] * scale + self$param_set$values$lower
74+
lower = min(x, na.rm = TRUE)
75+
upper = max(x, na.rm = TRUE)
76+
scale = (self$param_set$values$upper - self$param_set$values$lower) / (upper - lower)
77+
offset = -lower * scale + self$param_set$values$lower
7778
c(scale = scale, offset = offset)
7879
})
7980
},

0 commit comments

Comments
 (0)