| fit2df {finalfit} | R Documentation |
Extract model fit results to dataframe (generic): finalfit model
extractors
Description
Takes 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.
Usage
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 = " to ",
...
)
## 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 = "-",
...
)
Arguments
... |
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 |
Details
fit2df is a generic (S3) function for model extract.
Value
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
Examples
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)