Skip to content

Commit

Permalink
Fix AUMC difftime calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
prockenschaub committed Oct 11, 2023
1 parent f582793 commit 4215d5d
Showing 1 changed file with 34 additions and 3 deletions.
37 changes: 34 additions & 3 deletions R/data-load.R
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ load_difftime.eicu_tbl <- function(x, rows, cols = colnames(x),

warn_dots(...)

load_eiau(x, {{ rows }}, cols, id_hint, time_vars, min_as_mins)
load_ei(x, {{ rows }}, cols, id_hint, time_vars, min_as_mins)
}

#' @rdname load_src
Expand All @@ -153,7 +153,7 @@ load_difftime.aumc_tbl <- function(x, rows, cols = colnames(x),

warn_dots(...)

load_eiau(x, {{ rows }}, cols, id_hint, time_vars, ms_as_mins)
load_au(x, {{ rows }}, cols, id_hint, time_vars)
}

#' @rdname load_src
Expand Down Expand Up @@ -226,7 +226,38 @@ load_mihi <- function(x, rows, cols, id_hint, time_vars) {
as_id_tbl(dat, id_vars = id_col, by_ref = TRUE)
}

load_eiau <- function(x, rows, cols, id_hint, time_vars, mins_fun) {
load_au <- function(x, rows, cols, id_hint, time_vars) {
# TODO: this is closely related to load_mihi, extract common functionality
# and remove code duplication
dt_round_min <- function(x, y) round_to(ms_as_mins(x - y))

id_col <- resolve_id_hint(x, id_hint)

assert_that(is.string(id_col), id_col %in% colnames(x))

if (!id_col %in% cols) {
cols <- c(cols, id_col)
}

time_vars <- intersect(time_vars, cols)

dat <- load_src(x, {{ rows }}, cols)

if (length(time_vars)) {

dat <- merge(dat, id_origin(x, id_col, origin_name = "origin"),
by = id_col)
dat <- dat[,
c(time_vars) := lapply(.SD, dt_round_min, get("origin")),
.SDcols = time_vars
]
dat <- dat[, c("origin") := NULL]
}

as_id_tbl(dat, id_vars = id_col, by_ref = TRUE)
}

load_ei <- function(x, rows, cols, id_hint, time_vars, mins_fun) {

id_col <- resolve_id_hint(x, id_hint)

Expand Down

0 comments on commit 4215d5d

Please sign in to comment.