The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
#====================================
# Set up the reporting environment.
#====================================
tmpdr <- tempdir()
setup <- function(tlfid){
repfun::rs_setup(
D_DATADATE=Sys.Date(),
D_DSPLYNUM=tlfid,
D_FOOT1='1.) Baseline is defined as the last non-missing value prior to the first dose.',
D_FOOT2='2.) Treatment duration is calculated as: (last dose date - first dose date) + 28 days.',
D_FOOT3='3.) Age is collected in years.',
D_KEEPPOPVARS=c('STUDYID','USUBJID','SAFFL'),
D_OUTFILE=paste0(tmpdr,"/t_ru_list_",tlfid,".rtf"),
D_PGMPTH="~/vignettes/Dem-Tbls.Rmd",
D_STUDYID='ABCXYZPDQ',
D_POP="SAFFL",
D_POPDATA=repfun::adsl %>% dplyr::filter(SAFFL =='Y') %>%
dplyr::mutate(TRT01AN=ifelse(TRT01A=='Placebo',1,ifelse(TRT01A=='Xanomeline Low Dose',2,3))) %>%
repfun::ru_labels(varlabels=list('TRT01AN'='Actual Treatment for Period 01 (n)')),
D_POPLBL="Safety",
D_SUBJID=c("STUDYID","USUBJID"),
D_TITLE1=paste0('Table ',tlfid,': Summary of Demographic and Baseline Characteristics'),
R_DDDATA=paste0(tmpdr,'/t_ru_list_',tlfid,'.rds'),
R_ADAMDATA="../data")
}
setup(15)
tbl15dd <- paste0(tmpdr,"/t_ru_list_15.rds")fmtlist <- list('SEXS'=list('START'=list('M','F'),
'LABEL'=c('Male','Female')),
'SEX1'=list('START'=list('Male','Female','Unknown'),
'LABEL'=c(1,2,3)),
'AGE1'=list('START'=list('18-64','>64'),
'LABEL'=c(1,2)),
'RAC1'=list('START'=list('AMERICAN INDIAN OR ALASKA NATIVE','BLACK OR AFRICAN AMERICAN','WHITE'),
'LABEL'=c(1,2,3)),
'ETH1'=list('START'=list('HISPANIC OR LATINO','NOT HISPANIC OR LATINO'),
'LABEL'=c(1,2)))G_POPDATA2 <- repfun::ru_fillcodedcode(
repfun:::rfenv$G_POPDATA,
codedecodevarpairs=c("SEX", "SEXC", "AGEGR1", "AGEGR1N", "RACE", "RACEN", "ETHNIC", "ETHNICN"),
varcodelistpairs=c("SEX", "SEXS", "AGEGR1", "AGE1", "RACE", "RAC1", "ETHNIC", "ETH1"),
codelistnames=fmtlist,
completetypes=FALSE) %>%
repfun::ru_labels(varlabels=list('SEXC'='Gender','AGE'='Age (years)'))
G_POPDATA <- repfun::ru_fillcodedcode(
G_POPDATA2,
codedecodevarpairs=c("SEXC", "SEXCN"),
varcodelistpairs=c("SEXC", "SEX1"),
codelistnames=fmtlist,
completetypes=FALSE) dflst <- list()
df <- data.frame()
i <- 1
for(v in c('AGEGR1','SEXC','AGE','RACE','ETHNIC','TRTDURD')){
lbl <- attr(G_POPDATA[[v]],'label')
if (paste0(v,'N') %in% names(G_POPDATA)){
#==========================================#
# Generate counts/percents for categories. #
#==========================================#
dflst[[v]] <- repfun::ru_freq(
G_POPDATA, dsetindenom=G_POPDATA, countdistinctvars=c("STUDYID", "USUBJID"),
groupbyvarsnumer=c("STUDYID", "TRT01AN", paste0(v,'N')),
anyeventvars = NULL, anyeventvalues = NULL, groupminmaxvar=NULL,
totalforvar=c("TRT01AN"), totalid = 99, totaldecode = 'Total',
groupbyvarsdenom=c("STUDYID", "TRT01AN"), resultstyle="NUMERPCT",
codedecodevarpairs=c("TRT01AN", "TRT01A", paste0(v,'N'), v),
resultpctdps=0) %>%
dplyr::mutate(tt_avid=i, tt_avnm=lbl) %>%
dplyr::rename(tt_svid=as.name(paste0(v,'N')), tt_svnm=as.name(v)) %>%
dplyr::arrange(tt_avid,tt_svid) %>%
dplyr::select(tt_avid,tt_avnm,tt_svid,tt_svnm,TRT01AN,TRT01A,tt_result,DENOMCNT) %>%
dplyr::mutate(tt_avnm=paste0(tt_avnm,', n (%)'))
df <- repfun::ru_setdata(df,dflst[[v]]) %>% dplyr::select(-DENOMCNT) %>% dplyr::select(-Row.names)
} else {
lbl <- attr(G_POPDATA[[v]],'label')
#============================================#
# Generate summary stats for non-categories. #
#============================================#
dflst[[v]] <- repfun::ru_sumstats(
G_POPDATA, v, groupbyvars=c("STUDYID", "TRT01AN"),
codedecodevarpairs=c("TRT01AN", "TRT01A"),
totalforvar="TRT01AN", totalid=99, totaldecode="Total",
statsinrowsyn = "Y",
statslist=c("n", "mean", "median", "sd", "min", "max")) %>%
dplyr::mutate(tt_avid=tt_avid + i - 1, tt_avnm=lbl) %>%
dplyr::arrange(tt_avid,tt_svid) %>%
dplyr::select(tt_avid,tt_avnm,tt_svid,tt_svnm,TRT01AN,TRT01A,tt_result)
df <- repfun::ru_setdata(df,dflst[[v]]) %>% dplyr::select(-Row.names)
}
#===================================================#
# Make alignment consistent across all data frames. #
#===================================================#
df <- df %>%
dplyr::mutate(tt_result=paste0(strrep(' ',
3-nchar(gsub(' ','',sub('(\\(|\\.).*$','',tt_result)))),
trimws(tt_result)))
i <- i+1
}rptdf <- repfun::ru_addbignvar(df,
G_POPDATA,
groupbyvars=c("TRT01AN", "TRT01A"),
totalforvar=c("TRT01AN"),
totalid = 99,
varcodelistpairs=c(""),
codedecodevarpairs=c("TRT01AN", "TRT01A"),
splitchar='\\line') %>% dplyr::select(-tt_bnnm) %>%
dplyr::arrange(tt_avid,tt_svid)repfun::ru_list(dsetin=rptdf,
columns=c('tt_avnm','tt_svnm','tt_01','tt_02','tt_03','tt_99'),
nowidowvar='tt_avnm',
widths=c(5,5.1,1.65,1.9,1.9,1.65),
skipvars=c('tt_avnm'),
centrevars=c('tt_01','tt_02','tt_03','tt_99'),
ordervars=c('tt_avid','tt_svid'),
noprintvars=c('tt_avid','tt_svid'),
denormyn='Y',
varsToDenorm=c('tt_result'),
groupByVars=c('tt_avid','tt_avnm','tt_svid','tt_svnm'),
acrossVar="TRT01AN",
acrossVarLabel="TRT01A",
acrossColVarPrefix='tt_',
dddatasetlabel=paste0('DD Dataframe for DEMO Table ',repfun:::rfenv$G_DSPLYNUM),
labels=list('tt_avnm'='Variable','tt_svnm'='Category/Statistic'))t15 <- readRDS(repfun:::rfenv$G_DDDATA) %>% dplyr::filter(tt_svnm != '') %>% dplyr::filter(row_number()<=10)
lbls <- sapply(t15,function(x){attr(x,"label")})
names(t15) <- paste(names(lbls),lbls,sep=": ")
datatable(
t15, extensions = 'FixedColumns',
options = list(
dom = 't',
pageLength=1000,
scrollY = 300,
scrollX = TRUE,
scrollCollapse = TRUE
))setup(16)
repfun::ru_list(dsetin=rptdf,
columns=c('tt_avnm','tt_svnm','tt_01','tt_02','tt_03','tt_99'),
nowidowvar='tt_avnm',
widths=c(8,1.65,1.9,1.9,1.65),
skipvars=c('tt_avnm'),
centrevars=c('tt_01','tt_02','tt_03','tt_99'),
ordervars=c('tt_avid','tt_svid'),
sharecolvars=c('tt_avnm','tt_svnm'),
noprintvars=c('tt_avid','tt_svid'),
denormyn='Y',
varsToDenorm=c('tt_result'),
groupByVars=c('tt_avid','tt_avnm','tt_svid','tt_svnm'),
acrossVar="TRT01AN",
acrossVarLabel="TRT01A",
acrossColVarPrefix='tt_',
dddatasetlabel=paste0('DD Dataframe for DEMO Table ',repfun:::rfenv$G_DSPLYNUM),
labels=list('tt_avnm'='Variable','tt_svnm'='Category/Statistic'))t16 <- readRDS(repfun:::rfenv$G_DDDATA) %>% dplyr::filter(gsub("\\s+", "", STACKVAR) != '') %>% dplyr::filter(row_number()<=10)
lbls <- sapply(t16,function(x){attr(x,"label")})
names(t16) <- paste(names(lbls),lbls,sep=": ")
datatable(
t16, extensions = 'FixedColumns',
options = list(
dom = 't',
pageLength=1000,
scrollY = 300,
scrollX = TRUE,
scrollCollapse = TRUE
))setup(17)
df <- readRDS(file=tbl15dd) %>% dplyr::select(-PAGEVAR) %>% dplyr::filter(!(tt_svnm == ''))
dfpg <- rbind(df %>% dplyr::mutate(COUNTRY='CANADA'),df %>% dplyr::mutate(COUNTRY='USA')) %>% dplyr::select(COUNTRY, everything())
dfpg %>% dplyr::mutate(rnum=row_number()) %>% dplyr::group_by(COUNTRY,tt_avnm) %>% dplyr::filter (row_number()==1) %>% dplyr::ungroup() %>%
dplyr::distinct(COUNTRY,tt_avnm,rnum) -> dford
dfpg %>% left_join(dford,by=c('COUNTRY','tt_avnm')) %>% repfun::ru_labels(varlabels=list('COUNTRY'='Country')) -> dfpg
repfun::ru_list(dsetin=dfpg,
columns=c('COUNTRY','tt_avnm','tt_svnm','tt_01','tt_02','tt_03','tt_99'),
nowidowvar='tt_avnm',
sharecolvars=c('COUNTRY','tt_avnm','tt_svnm'),
ordervars=c('rnum'),
noprintvars=c('rnum'),
widths=c(7,1.65,1.9,1.9,1.65),
skipvars=c('COUNTRY','tt_avnm'),
centrevars=c('tt_01','tt_02','tt_03','tt_99'),
lpp=27,
dddatasetlabel=paste0('DD Dataframe for DEMO Table ',repfun:::rfenv$G_DSPLYNUM))t17 <- readRDS(repfun:::rfenv$G_DDDATA) %>% dplyr::filter(gsub("\\s+", "", STACKVAR) != '') %>% dplyr::filter(row_number()<=10)
lbls <- sapply(t17,function(x){attr(x,"label")})
names(t17) <- paste(names(lbls),lbls,sep=": ")
datatable(
t17, extensions = 'FixedColumns',
options = list(
dom = 't',
pageLength=1000,
scrollY = 300,
scrollX = TRUE,
scrollCollapse = TRUE
))setup(18)
dfpg %>% repfun::ru_labels(list('COUNTRY'='',
'tt_avnm'=paste0("\\u160* ",attr(dfpg$tt_avnm,'label')),
'tt_02'=gsub('Xanomeline ','',attr(dfpg$tt_02,'label')),
'tt_03'=gsub('Xanomeline ','',attr(dfpg$tt_03,'label'))))-> dfpg
repfun::ru_list(dsetin=dfpg,
columns=c('COUNTRY','tt_avnm','tt_svnm','tt_01','tt_02','tt_03','tt_99'),
nowidowvar='tt_avnm',
sharecolvars=c('COUNTRY','tt_avnm','tt_svnm'),
ordervars=c('rnum'),
noprintvars=c('rnum'),
widths=c(7,1.65,1.9,1.9,1.65),
skipvars=c('COUNTRY','tt_avnm'),
centrevars=c('tt_01','tt_02','tt_03','tt_99'),
lpp=27,
toprow='',
spanlbls=paste0("Country|Xanomeline| "),
spanwidths=c(8.65,3.8,1.65),
spanjust=c('l','c','c'),
spanbbord=c('','single',''),
spantbord=c('single','single','single'),
dddatasetlabel=paste0('DD Dataframe for DEMO Table ',repfun:::rfenv$G_DSPLYNUM))t18 <- readRDS(repfun:::rfenv$G_DDDATA) %>% dplyr::filter(gsub("\\s+", "", STACKVAR) != '') %>% dplyr::filter(row_number()<=10)
lbls <- sapply(t18,function(x){attr(x,"label")})
names(t18) <- paste(names(lbls),lbls,sep=": ")
datatable(
t18, extensions = 'FixedColumns',
options = list(
dom = 't',
pageLength=1000,
scrollY = 300,
scrollX = TRUE,
scrollCollapse = TRUE
))setup(19)
repfun::ru_list(dsetin=dfpg,
columns=c('COUNTRY','tt_avnm','tt_svnm','tt_01','tt_02','tt_03','tt_99'),
nowidowvar='tt_avnm',
sharecolvars=c('COUNTRY','tt_avnm','tt_svnm'),
ordervars=c('rnum'),
noprintvars=c('rnum'),
widths=c(7,1.65,1.9,1.9,1.65),
skipvars=c('COUNTRY','tt_avnm'),
centrevars=c('tt_01','tt_02','tt_03','tt_99'),
lpp=27,
spanlbls=paste0("Country| |Xanomeline| "),
toprow='',
spanwidths=c(7,1.65,3.8,1.65),
spanjust=c('l','c','c','c'),
spanbbord=c('','','single',''),
spantbord=c('','','',''),
span2lbls=paste0(" |All Active Treatments"),
span2widths=c(7,7.1),
span2just=c('c','c'),
span2bbord=c('','single'),
dddatasetlabel=paste0('DD Dataframe for DEMO Table ',repfun:::rfenv$G_DSPLYNUM))t19 <- readRDS(repfun:::rfenv$G_DDDATA) %>% dplyr::filter(gsub("\\s+", "", STACKVAR) != '') %>% dplyr::filter(row_number()<=10)
lbls <- sapply(t19,function(x){attr(x,"label")})
names(t19) <- paste(names(lbls),lbls,sep=": ")
datatable(
t19, extensions = 'FixedColumns',
options = list(
dom = 't',
pageLength=1000,
scrollY = 300,
scrollX = TRUE,
scrollCollapse = TRUE
))setup(20)
df <- readRDS(file=tbl15dd) %>% dplyr::select(-PAGEVAR) %>% dplyr::filter(!(tt_svnm == ''))
dfpg <- rbind(df %>% dplyr::mutate(COUNTRY='CANADA'),df %>% dplyr::mutate(COUNTRY='USA')) %>% dplyr::select(COUNTRY, everything())
dfpg %>% dplyr::mutate(rnum=row_number()) %>% dplyr::group_by(COUNTRY,tt_avnm) %>% dplyr::filter (row_number()==1) %>% dplyr::ungroup() %>%
dplyr::distinct(COUNTRY,tt_avnm,rnum) -> dford
dfpg <- dfpg %>% left_join(dford,by=c('COUNTRY','tt_avnm')) %>% repfun::ru_labels(varlabels=list('COUNTRY'='Country')) %>%
repfun::ru_labels(list('COUNTRY'='Country'))
mytbls <- list('Stratum: Normal'=dfpg[0,], 'Stratum: Abnormal'=dfpg)
repfun::ru_list(dsetin=mytbls,
columns=c('COUNTRY','tt_avnm','tt_svnm','tt_01','tt_02','tt_03','tt_99'),
nowidowvar='tt_avnm',
sharecolvars=c('COUNTRY','tt_avnm','tt_svnm'),
ordervars=c('rnum'),
noprintvars=c('rnum'),
widths=c(7,1.65,1.9,1.9,1.65),
skipvars=c('COUNTRY','tt_avnm'),
centrevars=c('tt_01','tt_02','tt_03','tt_99'),
lpp = 28,
dddatasetlabel=paste0('DD Dataframe for DEMO Table ',repfun:::rfenv$G_DSPLYNUM))t20 <- readRDS(repfun:::rfenv$G_DDDATA) %>% dplyr::filter(gsub("\\s+", "", STACKVAR) != '') %>% dplyr::filter(row_number()<=10)
lbls <- sapply(t20,function(x){attr(x,"label")})
names(t20) <- paste(names(lbls),lbls,sep=": ")
datatable(
t20, extensions = 'FixedColumns',
options = list(
dom = 't',
pageLength=1000,
scrollY = 300,
scrollX = TRUE,
scrollCollapse = TRUE
))setup(21)
df <- readRDS(file=tbl15dd) %>% dplyr::select(-PAGEVAR) %>% dplyr::filter(!(tt_svnm == ''))
dfpg <- rbind(df %>% dplyr::mutate(MYPAGEVAR=1),df %>% dplyr::mutate(MYPAGEVAR=2))
dfpg %>% dplyr::mutate(rnum=row_number()) %>% dplyr::group_by(tt_avnm) %>% dplyr::filter (row_number()==1) %>% dplyr::ungroup() %>% dplyr::distinct(tt_avnm,rnum) -> dford
dfpg <- dfpg %>% left_join(dford,by='tt_avnm') %>% repfun::ru_labels(varlabels=list('MYPAGEVAR'='My Page Variable'))
repfun::ru_list(dsetin=dfpg,
columns=c('tt_avnm','tt_svnm','tt_01','tt_02','tt_03','tt_99'),
widths=c(5,5,1.65,1.9,1.9,1.65),
nowidowvar='tt_avnm',
skipvars=c('tt_avnm'),
ordervars=c('rnum'),
noprintvars=c('rnum'),
centrevars=c('tt_01','tt_02','tt_03','tt_99'),
pagevars=c('MYPAGEVAR'),
computebeforepagelines="paste0('This is page value: ',MYPAGEVAR)",
lpp=28,
dddatasetlabel=paste0('DD Dataframe for DEMO Table ',repfun:::rfenv$G_DSPLYNUM))t21 <- readRDS(repfun:::rfenv$G_DDDATA) %>% dplyr::filter(gsub("\\s+", "", tt_svnm) != '') %>% dplyr::filter(row_number()<=10)
lbls <- sapply(t21,function(x){attr(x,"label")})
names(t21) <- paste(names(lbls),lbls,sep=": ")
datatable(
t21, extensions = 'FixedColumns',
options = list(
dom = 't',
pageLength=1000,
scrollY = 300,
scrollX = TRUE,
scrollCollapse = TRUE
))setup(22)
repfun::ru_list(dsetin=dfpg,
columns=c('tt_avnm','tt_svnm','tt_01','tt_02','tt_03','tt_99'),
widths=c(8,1.65,1.9,1.9,1.65),
nowidowvar='tt_avnm',
skipvars=c('tt_avnm'),
sharecolvars=c('tt_avnm','tt_svnm'),
ordervars=c('rnum'),
noprintvars=c('rnum'),
centrevars=c('tt_01','tt_02','tt_03','tt_99'),
pagevars=c('MYPAGEVAR'),
computebeforepagelines="paste0('This is page value: ',MYPAGEVAR)",
lpp=26,
dddatasetlabel=paste0('DD Dataframe for DEMO Table ',repfun:::rfenv$G_DSPLYNUM))t22 <- readRDS(repfun:::rfenv$G_DDDATA) %>% dplyr::filter(gsub("\\s+", "", STACKVAR) != '') %>% dplyr::filter(row_number()<=10)
lbls <- sapply(t22,function(x){attr(x,"label")})
names(t22) <- paste(names(lbls),lbls,sep=": ")
datatable(
t22, extensions = 'FixedColumns',
options = list(
dom = 't',
pageLength=1000,
scrollY = 300,
scrollX = TRUE,
scrollCollapse = TRUE
))setup(23)
df <- readRDS(file=tbl15dd) %>%
dplyr::select(-PAGEVAR) %>% dplyr::filter(!(tt_svnm == ''))
dfpg <- rbind(df %>% dplyr::mutate(MYPAGEVAR1=1,MYPAGEVAR2=1),
df %>% dplyr::mutate(MYPAGEVAR1=1,MYPAGEVAR2=2),
df %>% dplyr::mutate(MYPAGEVAR1=2,MYPAGEVAR2=3),
df %>% dplyr::mutate(MYPAGEVAR1=2,MYPAGEVAR2=4))
dford <- dfpg %>% dplyr::mutate(rnum=row_number()) %>%
dplyr::group_by(MYPAGEVAR1,MYPAGEVAR2,tt_avnm) %>%
dplyr::filter (row_number()==1) %>% dplyr::ungroup() %>%
dplyr::distinct(MYPAGEVAR1,MYPAGEVAR2,tt_avnm,rnum)
dfpg <- dfpg %>% left_join(dford,by=c('tt_avnm', 'MYPAGEVAR1', 'MYPAGEVAR2'))
lblist <- list('tt_avnm'='New Variable Label', 'tt_svnm'='New Category Label')
repfun::ru_list(dsetin=dfpg,
columns=c('tt_avnm','tt_svnm','tt_01','tt_02','tt_03','tt_99'),
nowidowvar='tt_avnm',
widths=c(6,4,2,2,2,2),
skipvars=c('tt_avnm'),
centrevars=c('tt_01','tt_02','tt_03','tt_99'),
ordervars=c('rnum'),
noprintvars=c('rnum'),
byvars=c('MYPAGEVAR2'),
pagevars=c('MYPAGEVAR1'),
computebeforepagelines="paste0('This is page value 1: ',MYPAGEVAR1,' and this is page value 2: ',MYPAGEVAR2)",
lpp=28,
labels=lblist,
dddatasetlabel=paste0('DD Dataframe for DEMO Table ',repfun:::rfenv$G_DSPLYNUM))t23 <- readRDS(repfun:::rfenv$G_DDDATA) %>% dplyr::filter(gsub("\\s+", "", tt_svnm) != '') %>% dplyr::filter(row_number()<=10)
lbls <- sapply(t23,function(x){attr(x,"label")})
names(t23) <- paste(names(lbls),lbls,sep=": ")
datatable(
t23, extensions = 'FixedColumns',
options = list(
dom = 't',
pageLength=1000,
scrollY = 300,
scrollX = TRUE,
scrollCollapse = TRUE
))These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.