Skip to content

Commit 5564c0d

Browse files
committed
speed up slow filter and select steps
1 parent 8bfb4d8 commit 5564c0d

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

R/slide.R

+3-5
Original file line numberDiff line numberDiff line change
@@ -348,8 +348,7 @@ epi_slide = function(x, f, ..., before, after, ref_time_values,
348348
if (rlang::is_formula(f)) f = as_slide_computation(f)
349349
f_rtv_wrapper = function(x, g, ...) {
350350
ref_time_value = min(x$time_value) + before
351-
x <- filter(x, .real) %>%
352-
select(-.real)
351+
x <- x[x$.real,]
353352
f(x, g, ref_time_value, ...)
354353
}
355354
x = x %>%
@@ -376,8 +375,7 @@ epi_slide = function(x, f, ..., before, after, ref_time_values,
376375
quo = quos[[1]]
377376
f = function(.x, .group_key, quo, ...) {
378377
.ref_time_value = min(.x$time_value) + before
379-
.x <- filter(.x, .real) %>%
380-
select(-.real)
378+
.x <- .x[.x$.real,]
381379
quo = quo_set_env(quo, env())
382380
rlang::eval_tidy(quo, .x)
383381
}
@@ -400,7 +398,7 @@ epi_slide = function(x, f, ..., before, after, ref_time_values,
400398
}
401399

402400
# Drop helper column `.real`.
403-
x = select(x, -.real)
401+
x$.real <- NULL
404402

405403
return(x)
406404
}

0 commit comments

Comments
 (0)