fit2df {finalfit} | R Documentation |
finalfit
model
extractorsTakes output from finalfit
model wrappers and extracts to a dataframe,
convenient for further processing in preparation for final results table.
fit2df.lm
is the model extract method for lm
.
fit2df.lmlist
is the model extract method for lmuni
and
lmmulti
.
fit2df.glm
is the model extract method for standard
glm
models, which have not used finalfit
model
wrappers.
fit2df.glmboot
is the model extract method for glmmulti_boot
models.
fit2df.glmlist
is the model extract method for glmuni
and glmmulti
.
fit2df.svyglmlist
is the model extract method for svyglmuni
and svyglmmulti
.
fit2df.lmerMod
is the model extract method for standard
lme4::lmer
models and for the
finalfit::lmmixed
model wrapper.
fit2df.glmerMod
is the model extract method for standard
lme4::glmer
models and for the
finalfit::glmmixed
model wrapper.
fit2df.coxph
is the model extract method for survival::coxph
.
fit2df.coxphlist
is the model extract method for coxphuni
and coxphmulti
.
fit2df.crr
is the model extract method for cmprsk::crr
.
fit2df.coxme
is the model extract method for eoxme::coxme
.
fit2df.crr
is the model extract method for
crruni
and crrmulti
.
fit2df.stanfit
is the model extract method for our standard Bayesian
hierarchical binomial logistic regression models. These models will be fully
documented separately. However this should work for a single or multilevel
Bayesian logistic regression done in Stan, as long as the fixed effects are
specified in the parameters block as a vector named beta
, of length
P
, where P
is the number of fixed effect parameters. e.g.
parameters vector[P] beta;
fit2df.mipo
is the model extract method for the mipo
object
created using mice::pool
.
fit2df(...) ## S3 method for class 'lm' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "Coefficient", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), confint_level = 0.95, confint_sep = " to ", ... ) ## S3 method for class 'lmlist' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "Coefficient", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), confint_level = 0.95, confint_sep = " to ", ... ) ## S3 method for class 'glm' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "OR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), exp = TRUE, confint_type = "profile", confint_level = 0.95, confint_sep = "-", ... ) ## S3 method for class 'glmboot' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "OR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), exp = TRUE, confint_level = 0.95, confint_sep = "-", ... ) ## S3 method for class 'glmlist' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "OR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), exp = TRUE, confint_type = "profile", confint_level = 0.95, confint_sep = "-", ... ) ## S3 method for class 'svyglmlist' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "Coefficient", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), exp = FALSE, confint_type = "profile", confint_level = 0.95, confint_sep = "-", ... ) ## S3 method for class 'lmerMod' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "Coefficient", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), confint_type = "Wald", confint_level = 0.95, confint_sep = "-", ... ) ## S3 method for class 'glmerMod' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "OR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), exp = TRUE, confint_type = "Wald", confint_level = 0.95, confint_sep = "-", ... ) ## S3 method for class 'coxph' fit2df( .data, condense = TRUE, metrics = FALSE, explanatory_name = "explanatory", estimate_name = "HR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), confint_sep = "-", ... ) ## S3 method for class 'coxphlist' fit2df( .data, condense = TRUE, metrics = FALSE, explanatory_name = "explanatory", estimate_name = "HR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), confint_sep = "-", ... ) ## S3 method for class 'crr' fit2df( .data, condense = TRUE, metrics = FALSE, explanatory_name = "explanatory", estimate_name = "HR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), confint_sep = "-", ... ) ## S3 method for class 'coxme' fit2df( .data, condense = TRUE, metrics = FALSE, explanatory_name = "explanatory", estimate_name = "HR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), confint_sep = "-", ... ) ## S3 method for class 'crrlist' fit2df( .data, condense = TRUE, metrics = FALSE, explanatory_name = "explanatory", estimate_name = "HR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), confint_sep = "-", ... ) ## S3 method for class 'stanfit' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "OR", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), confint_sep = "-", ... ) ## S3 method for class 'mipo' fit2df( .data, condense = TRUE, metrics = FALSE, remove_intercept = TRUE, explanatory_name = "explanatory", estimate_name = "Coefficient", estimate_suffix = "", p_name = "p", digits = c(2, 2, 3), exp = FALSE, confint_level = 0.95, confint_sep = "-", ... )
... |
Other arguments: |
.data |
Output from |
condense |
Logical: when true, effect estimates, confidence intervals and p-values are pasted conveniently together in single cell. |
metrics |
Logical: when true, useful model metrics are extracted. |
remove_intercept |
Logical: remove the results for the intercept term. |
explanatory_name |
Name for this column in output |
estimate_name |
Name for this column in output |
estimate_suffix |
Appeneded to estimate name |
p_name |
Name given to p-value estimate |
digits |
Number of digits to round to (1) estimate, (2) confidence interval limits, (3) p-value. |
confint_level |
The confidence level required. |
confint_sep |
String to separate confidence intervals, typically "-" or " to ". |
exp |
Currently GLM only. Exponentiate coefficients and confidence intervals. Defaults to TRUE. |
confint_type |
One of |
fit2df
is a generic (S3) function for model extract.
A dataframe of model parameters. When metrics=TRUE
output is a
list of two dataframes, one is model parameters, one is model metrics.
length two
library(finalfit) library(dplyr) library(survival) # glm fit = glm(mort_5yr ~ age.factor + sex.factor + obstruct.factor + perfor.factor, data=colon_s, family="binomial") fit %>% fit2df(estimate_suffix=" (multivariable)") # glmlist explanatory = c("age.factor", "sex.factor", "obstruct.factor", "perfor.factor") dependent = "mort_5yr" colon_s %>% glmmulti(dependent, explanatory) %>% fit2df(estimate_suffix=" (univariable)") # glmerMod explanatory = c("age.factor", "sex.factor", "obstruct.factor", "perfor.factor") random_effect = "hospital" dependent = "mort_5yr" colon_s %>% glmmixed(dependent, explanatory, random_effect) %>% fit2df(estimate_suffix=" (multilevel)") # glmboot ## Note number of draws set to 100 just for speed in this example explanatory = c("age.factor", "sex.factor", "obstruct.factor", "perfor.factor") dependent = "mort_5yr" colon_s %>% glmmulti_boot(dependent, explanatory, R = 100) %>% fit2df(estimate_suffix=" (multivariable (BS CIs))") # lm fit = lm(nodes ~ age.factor + sex.factor + obstruct.factor + perfor.factor, data=colon_s) fit %>% fit2df(estimate_suffix=" (multivariable)") # lmerMod explanatory = c("age.factor", "sex.factor", "obstruct.factor", "perfor.factor") random_effect = "hospital" dependent = "nodes" colon_s %>% lmmixed(dependent, explanatory, random_effect) %>% fit2df(estimate_suffix=" (multilevel") # coxphlist explanatory = c("age.factor", "sex.factor", "obstruct.factor", "perfor.factor") dependent = "Surv(time, status)" colon_s %>% coxphuni(dependent, explanatory) %>% fit2df(estimate_suffix=" (univariable)") colon_s %>% coxphmulti(dependent, explanatory) %>% fit2df(estimate_suffix=" (multivariable)") # coxph fit = coxph(Surv(time, status) ~ age.factor + sex.factor + obstruct.factor + perfor.factor, data = colon_s) fit %>% fit2df(estimate_suffix=" (multivariable)") # crr: competing risks melanoma = boot::melanoma melanoma = melanoma %>% mutate( status_crr = ifelse(status == 2, 0, # "still alive" ifelse(status == 1, 1, # "died of melanoma" 2)), # "died of other causes" sex = factor(sex), ulcer = factor(ulcer) ) dependent = c("Surv(time, status_crr)") explanatory = c("sex", "age", "ulcer") melanoma %>% summary_factorlist(dependent, explanatory, column = TRUE, fit_id = TRUE) %>% ff_merge( melanoma %>% crrmulti(dependent, explanatory) %>% fit2df(estimate_suffix = " (competing risks)") ) %>% select(-fit_id, -index) %>% dependent_label(melanoma, dependent)