Nothing
library(tidyverse)
## Defined here as it will be called by
## tests/reference_results/02_generate_sas_macro_calls_helpers.R
## and
## tests/testthat/test-09_cross_check_with_sas_macro.R.
generate_sas_macro_args <- function() {
sas_common_string <- "
/** Set libname */
libname w './';
/* Load SAS macro */
%include './mediation.sas';
/* Load data */
proc import datafile = './data-pbc_cc.csv'
out = pbc_cc
dbms = csv
replace;
run;
"
sas_macro_call_string_fmt <- "
%%mediation(
data = pbc_cc,
yvar = %s,
avar = %s,
mvar = %s,
cvar = %s,
a0 = %s,
a1 = %s,
m = %s,
yreg = %s,
mreg = %s,
interaction = %s,
casecontrol = %s,
output = %s,
c = %s,
boot = ,
cens = %s);
run;"
crossing(mreg = c("linear",
"logistic"),
yreg = c("linear",
"logistic",
"loglinear",
"poisson",
"negbin",
"survCox",
"survAFT_exp",
"survAFT_weibull"),
interaction = c("false","true"),
casecontrol = c("false","true"),
## empty cvar may not work with output = full
ncvar = c(0,3)) %>%
## casecontrol is only relevant for binary yreg
filter(casecontrol == "false" |
(casecontrol == "true" & (yreg == "logistic" | yreg == "loglinear"))) %>%
## Choose appropriate variable names
mutate(avar = "trt",
##
mvar = case_when(mreg == "linear" ~ "bili",
mreg == "logistic" ~ "bili_bin"),
##
yvar = case_when(yreg == "linear" ~ "alk_phos",
##
yreg == "logistic" ~ "spiders",
yreg == "loglinear" ~ "spiders",
##
yreg == "poisson" ~ "platelet",
yreg == "negbin" ~ "platelet",
##
yreg == "survCox" ~ "time",
yreg == "survAFT_exp" ~ "time",
yreg == "survAFT_weibull" ~ "time"),
##
eventvar = case_when(yreg == "survCox" ~ "status",
yreg == "survAFT_exp" ~ "status",
yreg == "survAFT_weibull" ~ "status",
TRUE ~ ""),
cens = "cens",
##
cvar = case_when(ncvar == 0 ~ "",
ncvar == 3 ~ "age male stage"),
##
output = case_when(ncvar == 0 ~ "full",
ncvar == 3 ~ "full"),
##
c_cond = case_when(ncvar == 0 ~ "",
ncvar == 3 ~ "50 1 2"),
## Stress test with nonsensical tricky values
a0 = "1.1",
a1 = "2.3",
m_cde = "1.4") %>%
## Contruct macro text
mutate(macro_call = sprintf(sas_macro_call_string_fmt,
yvar,
avar,
mvar,
cvar,
a0,
a1,
m_cde,
yreg,
mreg,
interaction,
casecontrol,
output,
c_cond,
cens)) %>%
## Construct the entire sas script
mutate(sas_script = paste0(sas_common_string,
macro_call)) %>%
## File name
mutate(filename = sprintf("sas-mreg_%s_yreg_%s_int_%s_caco_%s_ncvar%s.sas",
## All variables in crossing() should appear hear.
mreg,
yreg,
str_sub(interaction, start = 1, end = 1),
str_sub(casecontrol, start = 1, end = 1),
ncvar))
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.