-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathget-baseline-data.R
executable file
·53 lines (43 loc) · 1.23 KB
/
get-baseline-data.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
library(RPostgres)
library(dplyr)
library(readr)
library(lubridate)
library(tidyr)
source("scripts/common/logger-setup.R")
source("scripts/common/setup-argparse.R")
parser$add_argument("--combined-pf-and-summarised-fluid-data")
parser$add_argument("--demographics-query")
parser$add_argument("--median-labs-query")
args <- parser$parse_args()
mimic <- dbConnect(
RPostgres::Postgres(),
dbname = "mimic",
host = "localhost",
port = 5432,
user = "amanderson",
password = "postgres",
timezone = "US/Eastern"
)
combined_data <- readRDS(args$combined_pf_and_summarised_fluid_data)
icustay_ids <- combined_data$icustay_id %>%
unique()
demographics <- dbGetQuery(
mimic,
read_file(args$demographics_query)
) %>%
filter(icustay_id %in% icustay_ids)
first_labs <- dbGetQuery(
mimic,
read_file(args$median_labs_query)
) %>%
filter(icustay_id %in% icustay_ids)
no_missing_values_subset_vec <- first_labs[, -(1 : 3)] %>%
apply(2, function(x) sum(is.na(x))) == 0
first_labs_no_missing <- first_labs[, c(rep(TRUE, 3), no_missing_values_subset_vec)] %>%
arrange(icustay_id)
baseline_covariate <- first_labs_no_missing %>%
left_join(demographics, by = 'icustay_id')
saveRDS(
file = args$output,
object = baseline_covariate
)