11.14 Reformat and trim trajectory table for each biomarker

sbp <- full_bp_clean %>% 
  select(f.eid,Systolic_bp_pc,event_dt) %>% 
  rename(measurement = Systolic_bp_pc) %>% 
  mutate(biomarker = "sbp")

dbp <- full_bp_clean %>% 
  select(f.eid,Diastolic_bp_pc,event_dt) %>% 
  rename(measurement = Diastolic_bp_pc) %>% 
  mutate(biomarker = "dbp")

cholesterol <- totchol %>% 
  select(f.eid,totchol,event_dt) %>% 
  rename(measurement = totchol) %>% 
  mutate(biomarker = "chol")

hdl <- HDL %>% 
  select(f.eid,HDL,event_dt) %>% 
  rename(measurement = HDL) %>% 
  mutate(biomarker = "hdl")

ldl <- LDL %>% 
  select(f.eid,LDL,event_dt) %>% 
  rename(measurement = LDL) %>% 
  mutate(biomarker = "ldl")

trigly <- triglycerides %>% 
  select(f.eid,triglyc,event_dt) %>% 
  rename(measurement = triglyc) %>% 
  mutate(biomarker = "trig")

glu_fast <- fastgluc %>%
  select(f.eid,fastgluc,event_dt) %>% 
  rename(measurement = fastgluc) %>%
  mutate(biomarker = "glucose_fast")

glu_rand <- randgluc %>%
  select(f.eid,randgluc,event_dt) %>% 
  rename(measurement = randgluc) %>% 
  mutate(biomarker = "glucose_rand")

hba1c <- a1c %>% 
  select(f.eid,hba1c_mmol_mol,event_dt) %>% 
  rename(measurement = hba1c_mmol_mol) %>%
  mutate(biomarker = "hba1c")

bmi <- cleaned_bmi %>%
  select(f.eid,BMI,event_dt) %>%
  rename(measurement = BMI) %>%
  mutate(biomarker = "bmi")

blood_creat <- blood_creatinine %>%
  select(f.eid,blood_creatinine,event_dt) %>%
  rename(measurement = blood_creatinine) %>%
  mutate(biomarker = "creat_blood")

urine_creat <- ucreat %>% 
  select(f.eid, ucreat_umol_L, event_dt) %>%
  rename(measurement = ucreat_umol_L) %>%
  mutate(biomarker = "creat_urine")

urine_albumin <- ualb %>%
  select(f.eid, ualb_mg_L, event_dt) %>%
  rename(measurement = ualb_mg_L) %>%
  mutate(biomarker = "albumin_urine")

uacr <- UACR %>%
  select(f.eid,UACR,event_dt) %>%
  rename(measurement = UACR) %>%
  mutate(biomarker = "uacr")

Combine all of biomarker trajectory datasets into a long format.

biomarker_traj_tab_long <- bind_rows(list(sbp,dbp,cholesterol,hdl,ldl,trigly,
                                          glu_fast,glu_rand,hba1c,bmi,blood_creat,
                                          urine_creat,urine_albumin,uacr))

Create macro/microalbuminuria event table.

albuminuria_event_tab <- 
  biomarker_traj_tab_long %>% 
  filter(biomarker == "uacr") %>%
    mutate(macroalbuminuria = ifelse(measurement < 33.9,F,T),
           microalbuminuria = ifelse(measurement < 3.4,F,T)) %>%
    select(f.eid,event_dt,macroalbuminuria,microalbuminuria) %>%
    pivot_longer(cols=c(macroalbuminuria,microalbuminuria),values_to = "event", names_to = "type") %>%
  select(f.eid,event,event_dt,type)

Filter out the following from the biomarker trajectory table and albuminuria event table:

  • any unknown measurements
  • any measurements with unknown dates
biomarker_traj_tab_long <- biomarker_traj_tab_long[!is.na(biomarker_traj_tab_long$event_dt),]
biomarker_traj_tab_long <- biomarker_traj_tab_long[!is.na(biomarker_traj_tab_long$measurement),]

albuminuria_event_tab <- albuminuria_event_tab[!is.na(albuminuria_event_tab$event_dt),]

Save the biomarker trajectory data and albuminuria event table extracted from the primary care data.

saveRDS(biomarker_traj_tab_long,"generated_data/biomarker_trajectory_pcp.RDS")
saveRDS(albuminuria_event_tab,"generated_data/albuminuria_event_tab_pcp.RDS")