ir_crosstab {msSPChelpR} | R Documentation |
Calculate crude incidence rates and crosstabulate results by break variables
Description
Calculate crude incidence rates and crosstabulate results by break variables
Usage
ir_crosstab(
df,
dattype = NULL,
count_var,
xbreak_var = "none",
ybreak_vars,
collapse_ci = FALSE,
add_total = "no",
add_n_percentages = FALSE,
futime_var = NULL,
alpha = 0.05
)
Arguments
df |
dataframe in wide format |
dattype |
can be "zfkd" or "seer" or NULL. Will set default variable names if dattype is "seer" or "zfkd". Default is NULL. |
count_var |
variable to be counted as observed case. Should be 1 for case to be counted. |
xbreak_var |
variable from df by which rates should be stratified in columns of result df. Default is "none". |
ybreak_vars |
variables from df by which rates should be stratified in rows of result df. Multiple variables will result in appended rows in result df. y_break_vars is required. |
collapse_ci |
If TRUE upper and lower confidence interval will be collapsed into one column separated by "-". Default is FALSE. |
add_total |
option to add a row of totals. Can be either "no" for not adding such a row or "top" or "bottom" for adding it at the first or last row. Default is "no". |
add_n_percentages |
option to add a column of percentages for n_base in its respective yvar_group. Can only be used when xbreak_var = "none". Default is FALSE. |
futime_var |
variable in df that contains follow-up time per person (in years). Default is set if dattype is given. |
alpha |
significance level for confidence interval calculations. Default is alpha = 0.05 which will give 95 percent confidence intervals. |
Value
df
Examples
#load sample data
data("us_second_cancer")
#prep step - make wide data as this is the required format
usdata_wide <- us_second_cancer %>%
msSPChelpR::reshape_wide_tidyr(case_id_var = "fake_id",
time_id_var = "SEQ_NUM", timevar_max = 10)
#prep step - calculate p_spc variable
usdata_wide <- usdata_wide %>%
dplyr::mutate(p_spc = dplyr::case_when(is.na(t_site_icd.2) ~ "No SPC",
!is.na(t_site_icd.2) ~ "SPC developed",
TRUE ~ NA_character_)) %>%
dplyr::mutate(count_spc = dplyr::case_when(is.na(t_site_icd.2) ~ 1,
TRUE ~ 0))
#prep step - create patient status variable
usdata_wide <- usdata_wide %>%
msSPChelpR::pat_status(., fu_end = "2017-12-31", dattype = "seer",
status_var = "p_status", life_var = "p_alive.1",
birthdat_var = "datebirth.1", lifedat_var = "datedeath.1")
#now we can run the function
usdata_wide <- usdata_wide %>%
msSPChelpR::calc_futime(.,
futime_var_new = "p_futimeyrs",
fu_end = "2017-12-31",
dattype = "seer",
time_unit = "years",
status_var = "p_status",
lifedat_var = "datedeath.1",
fcdat_var = "t_datediag.1",
spcdat_var = "t_datediag.2")
#for example, you can calculate incidence and summarize by sex and registry
msSPChelpR::ir_crosstab(usdata_wide,
dattype = "seer",
count_var = "count_spc",
xbreak_var = "none",
ybreak_vars = c("sex.1", "registry.1"),
collapse_ci = FALSE,
add_total = "no",
add_n_percentages = FALSE,
futime_var = "p_futimeyrs",
alpha = 0.05)