使用R语言生成CDISC SDTM.SV domain

发布于:2025-02-10 ⋅ 阅读:(39) ⋅ 点赞:(0)

library(dplyr) 
library(haven) 
library(SASxport)
library(tidyverse)

sdtm_dm <- read_sas("C://dm.sas7bdat")
sdtm_se <- read_sas("C://se.sas7bdat")
raw_visit_001 <- read_sas("C://visit_001.sas7bdat")
raw_dseos_001 <- read_sas("C://dseos_001.sas7bdat")
raw_vs_01_001 <- read_sas("C://vs_01_001.sas7bdat")
raw_vs_02_001 <- read_sas("C://vs_02_001.sas7bdat")
raw_vs_03_001 <- read_sas("C://vs_03_001.sas7bdat")
raw_eg_001 <- read_sas("C://eg_001.sas7bdat")
raw_lb_01_001 <- read_sas("C://lb_01_001.sas7bdat")
raw_lb_02_001 <- read_sas("C://lb_02_001.sas7bdat")
raw_lb_03_001 <- read_sas("C://lb_03_001.sas7bdat")
raw_lb_04_001 <- read_sas("C://lb_04_001.sas7bdat")
raw_pg_001 <- read_sas("C://pg_001.sas7bdat")
raw_pc_001 <- read_sas("C://pc_001.sas7bdat")
raw_pc_02_001 <- read_sas("C://pc_02_001.sas7bdat")
raw_qsall_02_001 <- read_sas("C://qsall_02_001.sas7bdat")
raw_qsall_001 <- read_sas("C://qsall_001.sas7bdat")
raw_qsall_002_001 <- read_sas("C://qsall_002_001.sas7bdat")
raw_qsall_003 <- read_sas("C://qsall_003.sas7bdat")
raw_qs_cssrs_04_001 <- read_sas("C://qs_cssrs_04_001.sas7bdat")
raw_qs_cssrs_02_001 <- read_sas("C://qs_cssrs_02_001.sas7bdat")
raw_qs_diepss <- read_sas("C://qs_diepss.sas7bdat")
raw_qs_sds <- read_sas("C://qs_sds.sas7bdat")
raw_psqi <- read_sas("C://psqi.sas7bdat")
raw_qs_phq9 <- read_sas("C://qs_phq9.sas7bdat")
raw_eq5d5l_001 <- read_sas("C://eq5d5l_001.sas7bdat")
raw_msq_001 <- read_sas("C://msq_001.sas7bdat")
raw_qs_wpaigh <- read_sas("C://qs_wpaigh.sas7bdat")
raw_ft_bacs <- read_sas("C://ft_bacs.sas7bdat")
raw_upsab_001 <- read_sas("C://upsab_001.sas7bdat")
raw_qshru_001 <- read_sas("C://qshru_001.sas7bdat")
raw_cm_02_001 <- read_sas("C://cm_02_001.sas7bdat")
raw_pene_001 <- read_sas("C://pene_001.sas7bdat")
raw_exda_02_001 <- read_sas("C://exda_02_001.sas7bdat")
raw_dsicpg_001 <- read_sas("C://dsicpg_001.sas7bdat")
raw_dsicwd_001 <- read_sas("C://dsicwd_001.sas7bdat")

names(raw_visit_001) <- toupper(names(raw_visit_001))
names(raw_dseos_001) <- toupper(names(raw_dseos_001))
names(raw_vs_01_001) <- toupper(names(raw_vs_01_001))
names(raw_vs_02_001) <- toupper(names(raw_vs_02_001))
names(raw_vs_03_001) <- toupper(names(raw_vs_03_001))
names(raw_eg_001) <- toupper(names(raw_eg_001))
names(raw_lb_01_001) <- toupper(names(raw_lb_01_001))
names(raw_lb_02_001) <- toupper(names(raw_lb_02_001))
names(raw_lb_03_001) <- toupper(names(raw_lb_03_001))
names(raw_lb_04_001) <- toupper(names(raw_lb_04_001))
names(raw_pg_001) <- toupper(names(raw_pg_001))
names(raw_pc_001) <- toupper(names(raw_pc_001))
names(raw_pc_02_001) <- toupper(names(raw_pc_02_001))
names(raw_qsall_02_001) <- toupper(names(raw_qsall_02_001))
names(raw_qsall_001) <- toupper(names(raw_qsall_001))
names(raw_qsall_002_001) <- toupper(names(raw_qsall_002_001))
names(raw_qsall_003) <- toupper(names(raw_qsall_003))
names(raw_qs_cssrs_04_001) <- toupper(names(raw_qs_cssrs_04_001))
names(raw_qs_cssrs_02_001) <- toupper(names(raw_qs_cssrs_02_001))
names(raw_qs_diepss) <- toupper(names(raw_qs_diepss))
names(raw_qs_sds) <- toupper(names(raw_qs_sds))
names(raw_psqi) <- toupper(names(raw_psqi))
names(raw_qs_phq9) <- toupper(names(raw_qs_phq9))
names(raw_eq5d5l_001) <- toupper(names(raw_eq5d5l_001))
names(raw_msq_001) <- toupper(names(raw_msq_001))
names(raw_qs_wpaigh) <- toupper(names(raw_qs_wpaigh))
names(raw_ft_bacs) <- toupper(names(raw_ft_bacs))
names(raw_upsab_001) <- toupper(names(raw_upsab_001))
names(raw_qshru_001) <- toupper(names(raw_qshru_001))
names(raw_cm_02_001) <- toupper(names(raw_cm_02_001))
names(raw_pene_001) <- toupper(names(raw_pene_001))
names(raw_exda_02_001) <- toupper(names(raw_exda_02_001))
names(raw_dsicpg_001) <- toupper(names(raw_dsicpg_001))
names(raw_dsicwd_001) <- toupper(names(raw_dsicwd_001))

visit <- raw_visit_001 %>% mutate(svdate=as.Date(SVDAT_RAW, format="%d %b %Y"),svup='') %>% select(SUBJECT,FOLDERNAME,INSTANCENAME,svdate,svup)

vs02 <- raw_vs_02_001 %>% filter(FOLDERNAME == "Unscheduled Visit") %>%
  mutate(
    svdate=as.Date(substr(INSTANCENAME,19,27), format="%d %b %Y"),
    svup = case_when(FOLDERNAME == "Unscheduled Visit" ~ "VS")
  ) %>% 
  select(SUBJECT,FOLDERNAME,INSTANCENAME,svdate,svup)

vs03 <- raw_vs_03_001 %>% mutate(svdate=as.Date(VSDAT_RAW, format="%d %b %Y"),svup='') %>% select(SUBJECT,FOLDERNAME,INSTANCENAME,svdate,svup)

eg <- raw_eg_001 %>%  filter((EGALL_EGPERF == "Yes" | EGALL_EGPERF =="No") & FOLDERNAME == "Unscheduled Visit") %>% 
  mutate(
    svdate=as.Date(substr(INSTANCENAME,19,27), format="%d %b %Y"),
    svup = case_when(FOLDERNAME == "Unscheduled Visit" ~ "ECG")
  ) %>% 
  select(SUBJECT,FOLDERNAME,INSTANCENAME,svdate,svup)

lb01_blood <- raw_lb_01_001 %>%


网站公告

今日签到

点亮在社区的每一天
去签到