Jstable
Regression Tables from 'GLM', 'GEE', 'GLMM', 'Cox' and 'survey' Results.
Install / Use
/learn @jinseob2kim/JstableREADME
jstable
Regression Tables from ‘GLM’, ‘GEE’, ‘GLMM’, ‘Cox’ and ‘survey’ Results for Publication.
Install
install.packages("jstable")
## From github: latest version
remotes::install_github('jinseob2kim/jstable')
library(jstable)
GLM Table
## Gaussian
glm_gaussian <- glm(mpg~cyl + disp, data = mtcars)
glmshow.display(glm_gaussian, decimal = 2)
## $first.line
## [1] "Linear regression predicting mpg\n"
##
## $table
## crude coeff.(95%CI) crude P value adj. coeff.(95%CI) adj. P value
## cyl "-2.88 (-3.51,-2.24)" "< 0.001" "-1.59 (-2.98,-0.19)" "0.034"
## disp "-0.04 (-0.05,-0.03)" "< 0.001" "-0.02 (-0.04,0)" "0.054"
##
## $last.lines
## [1] "No. of observations = 32\nR-squared = 0.7596\nAIC value = 167.1456\n\n"
##
## attr(,"class")
## [1] "display" "list"
## Binomial
glm_binomial <- glm(vs~cyl + disp, data = mtcars, family = binomial)
glmshow.display(glm_binomial, decimal = 2)
## $first.line
## [1] "Logistic regression predicting vs\n"
##
## $table
## crude OR.(95%CI) crude P value adj. OR.(95%CI) adj. P value
## cyl "0.2 (0.08,0.56)" "0.002" "0.15 (0.02,1.02)" "0.053"
## disp "0.98 (0.97,0.99)" "0.002" "1 (0.98,1.03)" "0.715"
##
## $last.lines
## [1] "No. of observations = 32\nAIC value = 23.8304\n\n"
##
## attr(,"class")
## [1] "display" "list"
GEE Table: from geeglm object from geepack package
library(geepack) ## for dietox data
data(dietox)
dietox$Cu <- as.factor(dietox$Cu)
dietox$ddn <- as.numeric(rnorm(nrow(dietox)) > 0)
gee01 <- geeglm (Weight ~ Time + Cu , id = Pig, data = dietox, family = gaussian, corstr = "ex")
geeglm.display(gee01)
## $caption
## [1] "GEE(gaussian) predicting Weight by Time, Cu - Group Pig"
##
## $table
## crude coeff(95%CI) crude P value adj. coeff(95%CI)
## Time "6.94 (6.79,7.1)" "< 0.001" "6.94 (6.79,7.1)"
## Cu: ref.=Cu000 NA NA NA
## 035 "-0.59 (-3.73,2.54)" "0.711" "-0.84 (-3.9,2.23)"
## 175 "1.9 (-1.87,5.66)" "0.324" "1.77 (-1.9,5.45)"
## adj. P value
## Time "< 0.001"
## Cu: ref.=Cu000 NA
## 035 "0.593"
## 175 "0.345"
##
## $metric
## crude coeff(95%CI) crude P value
## NA NA
## Estimated correlation parameters "0.775" NA
## No. of clusters "72" NA
## No. of observations "861" NA
## adj. coeff(95%CI) adj. P value
## NA NA
## Estimated correlation parameters NA NA
## No. of clusters NA NA
## No. of observations NA NA
gee02 <- geeglm (ddn ~ Time + Cu , id = Pig, data = dietox, family = binomial, corstr = "ex")
geeglm.display(gee02)
## $caption
## [1] "GEE(binomial) predicting ddn by Time, Cu - Group Pig"
##
## $table
## crude OR(95%CI) crude P value adj. OR(95%CI) adj. P value
## Time "0.99 (0.96,1.03)" "0.729" "0.99 (0.96,1.03)" "0.727"
## Cu: ref.=Cu000 NA NA NA NA
## 035 "1.2 (0.81,1.78)" "0.364" "1.2 (0.81,1.78)" "0.364"
## 175 "1.03 (0.71,1.48)" "0.889" "1.03 (0.71,1.48)" "0.889"
##
## $metric
## crude OR(95%CI) crude P value adj. OR(95%CI)
## NA NA NA
## Estimated correlation parameters "0.031" NA NA
## No. of clusters "72" NA NA
## No. of observations "861" NA NA
## adj. P value
## NA
## Estimated correlation parameters NA
## No. of clusters NA
## No. of observations NA
Mixed model Table: lmerMod or glmerMod object from lme4 package
library(lme4)
l1 <- lmer(Weight ~ Time + Cu + (1|Pig), data = dietox)
lmer.display(l1, ci.ranef = T)
## $table
## crude coeff(95%CI) crude P value adj. coeff(95%CI)
## Time 6.94 (6.88,7.01) 0.0000000 6.94 (6.88,7.01)
## Cu: ref.=Cu000 <NA> NA <NA>
## 035 -0.58 (-4.67,3.51) 0.7811327 -0.84 (-4.47,2.8)
## 175 1.9 (-2.23,6.04) 0.3670740 1.77 (-1.9,5.45)
## Random effects <NA> NA <NA>
## Pig 40.34 (28.08,54.95) NA <NA>
## Residual 11.37 (10.3,12.55) NA <NA>
## Metrics <NA> NA <NA>
## No. of groups (Pig) 72 NA <NA>
## No. of observations 861 NA <NA>
## Log-likelihood -2400.8 NA <NA>
## AIC value 4801.6 NA <NA>
## adj. P value
## Time 0.0000000
## Cu: ref.=Cu000 NA
## 035 0.6527264
## 175 0.3442309
## Random effects NA
## Pig NA
## Residual NA
## Metrics NA
## No. of groups (Pig) NA
## No. of observations NA
## Log-likelihood NA
## AIC value NA
##
## $caption
## [1] "Linear mixed model fit by REML : Weight ~ Time + Cu + (1 | Pig)"
l2 <- glmer(ddn ~ Weight + Time + (1|Pig), data= dietox, family= "binomial")
lmer.display(l2)
## $table
## crude OR(95%CI) crude P value adj. OR(95%CI)
## Weight 1 (0.99,1) 0.5477787 0.99 (0.97,1.01)
## Time 0.99 (0.96,1.03) 0.7532531 1.09 (0.93,1.27)
## Random effects <NA> NA <NA>
## Pig 0.11 NA <NA>
## Metrics <NA> NA <NA>
## No. of groups (Pig) 72 NA <NA>
## No. of observations 861 NA <NA>
## Log-likelihood -594.08 NA <NA>
## AIC value 1196.16 NA <NA>
## adj. P value
## Weight 0.2256157
## Time 0.2754273
## Random effects NA
## Pig NA
## Metrics NA
## No. of groups (Pig) NA
## No. of observations NA
## Log-likelihood NA
## AIC value NA
##
## $caption
## [1] "Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) : ddn ~ Weight + Time + (1 | Pig)"
Cox model with frailty or cluster options
library(survival)
fit1 <- coxph(Surv(time, status) ~ ph.ecog + age, cluster = inst, lung, model = T) ## model = T: to extract original data
fit2 <- coxph(Surv(time, status) ~ ph.ecog + age + frailty(inst), lung, model = T)
cox2.display(fit1)
## $table
## crude HR(95%CI) crude P value adj. HR(95%CI) adj. P value
## ph.ecog "1.61 (1.25,2.08)" "< 0.001" "1.56 (1.22,2)" "< 0.001"
## age "1.02 (1.01,1.03)" "0.007" "1.01 (1,1.02)" "0.085"
##
## $ranef
## [,1] [,2] [,3] [,4]
## cluster NA NA NA NA
## inst NA NA NA NA
##
## $metric
## [,1] [,2] [,3] [,4]
## <NA> NA NA NA NA
## No. of observations 226 NA NA NA
## No. of events 163 NA NA NA
##
## $caption
## [1] "Marginal Cox model on time ('time') to event ('status') - Group inst"
cox2.display(fit2)
## $ta
