| Type: | Package | 
| Title: | Toolkit for Compiling, (Post-Hoc) Testing, and Plotting Regression Results | 
| Version: | 0.1.3 | 
| Description: | Compiling regression results into a publishable format, conducting post-hoc hypothesis testing, and plotting moderating effects (the effect of X on Y becomes stronger/weaker as Z increases). | 
| Depends: | R (≥ 3.5.0) | 
| Maintainer: | Rui K. Yang <rkzyang@gmail.com> | 
| License: | GPL-3 | 
| Encoding: | UTF-8 | 
| Suggests: | testthat | 
| RoxygenNote: | 7.0.2 | 
| Imports: | stats, purrr, dplyr, magrittr, tidyr, usdm, scales, robustbase, stringr, MuMIn, ggplot2, lspline | 
| BugReports: | https://github.com/RkzYang/regrrr/issues | 
| NeedsCompilation: | no | 
| Packaged: | 2021-08-13 13:43:49 UTC; ray_mac | 
| Author: | Rui K. Yang [aut, cre], Luyao Peng [aut] | 
| Repository: | CRAN | 
| Date/Publication: | 2021-08-13 14:00:05 UTC | 
regrrr: a toolkit for compiling regression results
Description
Compiling, Testing, Plotting Regression Results
Author(s)
Rui K. Yang rkzyang@gmail.com
Luyao Peng luyaopeng.cn@gmail.com
See Also
Useful links:
- Report bugs at https://github.com/RkzYang/regrrr/issues 
Add row numbers to regression result data.frame
Description
Add row numbers to regression result data.frame
Usage
add.n.r(df)
Arguments
| df | a data.frame of regression result | 
Add approximate p-value based on t score or z score, when sample size is large
Description
Add approximate p-value based on t score or z score, when sample size is large
Usage
add.pr(df, z.col = 3, p.already = FALSE)
Arguments
| df | a data.frame of regression result | 
| z.col | the column number of t score or z score | 
| p.already | whether the regression result already contains p.value | 
Add significance level marks to the regression result
Description
Add significance level marks to the regression result
Usage
add.sig(df, Pr.col = 5)
Arguments
| df | a data.frame of regression result, e.g. summary(a_lm_model)$coefficients | 
| Pr.col | the column number of p.value | 
quickly check correlation matrix, or the correlation between a particular X and all other vars could be useful for looking for relevant instrument
Description
quickly check correlation matrix, or the correlation between a particular X and all other vars could be useful for looking for relevant instrument
Usage
check_cor(data, var_name_select = NULL, d = 3)
Arguments
| data | a data.frame used in regression model | 
| var_name_select | to specify the variable names to be included in the table, default is NULL–all variables are included | 
| d | number of digits retained after the decimal point | 
Examples
data(mtcars)
check_cor(mtcars)
quickly check the proportion of NAs in each columns of a dataframe
Description
quickly check the proportion of NAs in each columns of a dataframe
Usage
check_na_in(data, true_total = FALSE)
Arguments
| data | a data.frame | 
| true_total | FALSE to show the percentage, TRUE to show the true number of missing values | 
Examples
data(mtcars)
check_na_in(mtcars)
quickly check the vifs in a regression model; for checking multi-collinearity
Description
quickly check the vifs in a regression model; for checking multi-collinearity
Usage
check_vif(data)
Arguments
| data | a data.frame used in regression model | 
Examples
data(mtcars)
model <- lm(mpg ~ vs + carb + hp + wt + wt * hp , data = mtcars)
check_vif(data = model$model)
Combine regression results from different models by columns
Description
Combine regression results from different models by columns
Usage
combine_long_tab(
  tbl_1,
  tbl_2,
  tbl_3 = NULL,
  tbl_4 = NULL,
  tbl_5 = NULL,
  tbl_6 = NULL,
  tbl_7 = NULL,
  tbl_8 = NULL,
  tbl_9 = NULL,
  tbl_10 = NULL,
  tbl_11 = NULL,
  tbl_12 = NULL,
  tbl_13 = NULL,
  tbl_14 = NULL,
  tbl_15 = NULL,
  tbl_16 = NULL,
  tbl_17 = NULL,
  tbl_18 = NULL,
  tbl_19 = NULL,
  tbl_20 = NULL
)
Arguments
| tbl_1 | the 1st data.frame of regression result | 
| tbl_2 | the 2nd data.frame of regression result | 
| tbl_3 | the 3rd data.frame of regression result | 
| tbl_4 | the 4th data.frame of regression result | 
| tbl_5 | the 5th data.frame of regression result | 
| tbl_6 | the 6th data.frame of regression result | 
| tbl_7 | the 7th data.frame of regression result | 
| tbl_8 | the 8th data.frame of regression result | 
| tbl_9 | the 9th data.frame of regression result | 
| tbl_10 | the 10th data.frame of regression result | 
| tbl_11 | the 11th data.frame of regression result | 
| tbl_12 | the 12th data.frame of regression result | 
| tbl_13 | the 13th data.frame of regression result | 
| tbl_14 | the 14th data.frame of regression result | 
| tbl_15 | the 15th data.frame of regression result | 
| tbl_16 | the 16th data.frame of regression result | 
| tbl_17 | the 17th data.frame of regression result | 
| tbl_18 | the 18th data.frame of regression result | 
| tbl_19 | the 19th data.frame of regression result | 
| tbl_20 | the 20th data.frame of regression result | 
Examples
data(mtcars)
m1 <- lm(mpg ~ vs + carb + hp + wt + wt * hp , data = mtcars)
m2 <- update(m1, . ~ .+ wt * vs)
summary(m1)
summary(m2)
combine_long_tab(to_long_tab(summary(m1)$coef), 
                 to_long_tab(summary(m2)$coef))
Compare regression models, which is compatible with the reg.table output # updated 9/13/2018 #
Description
Compare regression models, which is compatible with the reg.table output # updated 9/13/2018 #
Usage
compare_models(
  model1,
  model2,
  model3 = NULL,
  model4 = NULL,
  model5 = NULL,
  model6 = NULL,
  model7 = NULL,
  model8 = NULL,
  model9 = NULL,
  model10 = NULL,
  model11 = NULL,
  model12 = NULL,
  model13 = NULL,
  model14 = NULL,
  model15 = NULL,
  model16 = NULL,
  model17 = NULL,
  model18 = NULL,
  model19 = NULL,
  model20 = NULL,
  likelihood.only = FALSE,
  round.digit = 3,
  main.effect.only = NULL,
  intn.effect.only = NULL
)
Arguments
| model1 | the 1st regression model | 
| model2 | the 2nd regression model | 
| model3 | the 3rd regression model | 
| model4 | the 4th regression model | 
| model5 | the 5th regression model | 
| model6 | the 6th regression model | 
| model7 | the 7th regression model | 
| model8 | the 8th regression model | 
| model9 | the 9th regression model | 
| model10 | the 10th regression model | 
| model11 | the 11th regression model | 
| model12 | the 12th regression model | 
| model13 | the 13th regression model | 
| model14 | the 14th regression model | 
| model15 | the 15th regression model | 
| model16 | the 16th regression model | 
| model17 | the 17th regression model | 
| model18 | the 18th regression model | 
| model19 | the 19th regression model | 
| model20 | the 20th regression model | 
| likelihood.only | whether or not to output the likelihood | 
| round.digit | number of decimal places to retain | 
| main.effect.only | specify col number of alternative main-effect models, if any | 
| intn.effect.only | specify col number of alternative moderator models, if any | 
Examples
data(mtcars)
m1 <- lm(mpg ~ vs + carb + hp + wt + wt * hp , data = mtcars)
m2 <- update(m1, . ~ .+ wt * vs)
compare_models(m1, m2)
make the correlation matrix from the data.frame used in regression
Description
make the correlation matrix from the data.frame used in regression
Usage
cor.table(
  data,
  data_to_combine = NULL,
  var_name_select = NULL,
  all.var.names = NULL,
  d = 2
)
Arguments
| data | a data.frame used in regression model, e.g. model$model | 
| data_to_combine | another data.frame used for regression model, e.g. when you have similar set of X's but different Y's | 
| var_name_select | optional: to specify the variable names used in regression to be included in the correlation matrix | 
| all.var.names | optional: to rename all variable names, a string vector | 
| d | number of decimal places to retain | 
Examples
data(mtcars)
model <- lm(mpg ~ vs + carb + hp + wt + wt * hp , data = mtcars)
cor.table(data = model$model)
load multiple packages
Description
load multiple packages
Usage
load.pkgs(pkg_name_vec)
Arguments
| pkg_name_vec | a string vector of package names | 
Examples
## Not run: 
load.pkgs(c("dplyr", "car", "purrr"))
## End(Not run)
plotting the marginal effect of X on Y, with or without one or multiple interaction terms
Description
plotting the marginal effect of X on Y, with or without one or multiple interaction terms
Usage
plot_effect(
  reg.coef,
  data,
  model,
  by_color = FALSE,
  x_var.name = NULL,
  y_var.name = NULL,
  moderator.name = NULL,
  min_x = 0.001,
  max_x = 0.999,
  mdrt_quantile_05 = NULL,
  mdrt_quantile_50 = NULL,
  mdrt_quantile_95 = NULL,
  mod.n.sd = 1,
  confidence_interval = FALSE,
  v = NULL,
  CI_Ribbon = FALSE,
  title = NULL,
  xlab = "X_Var.name",
  ylab = "Y_Var.name",
  moderator.lab = "Moderator_name",
  mdrt.low.name = "Low",
  mdrt.mid.name = NULL,
  mdrt.high.name = "High",
  y.high.lim = NULL,
  y.low.lim = NULL,
  spline_labels = c("LHS", "RHS")
)
Arguments
| reg.coef | a coefficient matrix of regression result, e.g. summary(lm_model)$coef | 
| data | the data used in regression, a data frame | 
| model | the model object, such as a "lm" object | 
| by_color | plot interactions by colors, otherwise by line types | 
| x_var.name | x name in the regression model, a string | 
| y_var.name | y name in the regression model, a string | 
| moderator.name | moderating variable name in the regression model, a string | 
| min_x | the min of x scale, in percentile of x | 
| max_x | the max of x scale, in percentile of x | 
| mdrt_quantile_05 | set the low level of moderator, in percentile | 
| mdrt_quantile_50 | set the middle level of moderator, in percentile | 
| mdrt_quantile_95 | set the high level of moderator, in percentile | 
| mod.n.sd | set the moderating strength, in the number of s.d. units, which can take negative values | 
| confidence_interval | if TRUE, plot confidence intervals | 
| v | a customized variance-covariance matrix | 
| CI_Ribbon | if TRUE, plot confidence interval ribbons, if FALSE, plot error bars | 
| title | the title of the plot | 
| xlab | label of X | 
| ylab | label of Y | 
| moderator.lab | label of moderator | 
| mdrt.low.name | the label of low-level moderator | 
| mdrt.mid.name | the label of mid-level moderator | 
| mdrt.high.name | the label of high-level moderator | 
| y.high.lim | specify the upper limit of y | 
| y.low.lim | specify the lower limit of y | 
| spline_labels | label of the spline variable; when the main varaible is a linear spline and spline labels are supplied, the moderation effect will be presented by facets. | 
Examples
## Not run: 
data(mtcars)
m1 <- lm(mpg ~ vs + carb + hp + wt + wt * hp , data = mtcars)
plot_effect(reg.coef = summary(m1)$coefficients,
                 data = mtcars, model = m1,
                 x_var.name = "wt", y_var.name = "mpg", moderator.name = "hp",
                 confidence_interval = TRUE,  CI_Ribbon = TRUE,
                 xlab = "Weight", ylab = "MPG", moderator.lab = "Horsepower")
## End(Not run)
#' @examples
## Not run: 
data(mtcars)
m2 <- lm(mpg ~ vs + carb + hp + wt + wt * hp + wt * vs, data = mtcars)
plot_effect(reg.coef = summary(m2)$coefficients,
            data = mtcars, model = m2,
            x_var.name = "wt", y_var.name = "mpg", moderator.name = "hp",
            confidence_interval = TRUE,  CI_Ribbon = FALSE,
            xlab = "Weight", ylab = "MPG", moderator.lab = "Horsepower")
## End(Not run)
#' @examples
## Not run: 
data(mtcars)
m3 <- lm(mpg ~ vs + carb + hp + lspline(wt, knots = 4, marginal = FALSE) * hp, data = mtcars)
plot_effect(reg.coef=summary(m3)$coefficients, 
            data = mtcars, model = m3, x_var.name = "wt", y_var.name = "mpg", moderator.name = "hp",
            xlab="Weight", ylab="MPG", moderator.lab="Horsepower") 
## End(Not run)
## Not run: 
# this shows the function is compatible with ggplot2 customization
library(extrafont)
m1 <- lm(mpg ~ vs + carb + hp + wt + wt * hp , data = mtcars)
plot_effect(reg.coef = summary(m1)$coefficients, 
                 data = mtcars, model = m1, 
                 x_var.name = "wt", y_var.name = "mpg", moderator.name = "hp", 
                 confidence_interval = TRUE,  CI_Ribbon = TRUE, 
                 xlab = "Weight", ylab = "MPG", moderator.lab = "Horsepower") + 
ggplot2::theme(text=ggplot2::element_text(family="Times New Roman", size = 16))
## End(Not run)
Scale a vector into the 0-1 scale
Description
Scale a vector into the 0-1 scale
Usage
scale_01(x)
Arguments
| x | a vector | 
testing equality of two coefficients (difference between coefficients of regressors), a Wald test note: if v is not alternatively specified, use car::linearHypothesis(lm_model, "X1 = X2")
Description
testing equality of two coefficients (difference between coefficients of regressors), a Wald test note: if v is not alternatively specified, use car::linearHypothesis(lm_model, "X1 = X2")
Usage
test_coef_equality(model, var1.name, var2.name, v = NULL)
Arguments
| model | the model object, such as a "lm" object | 
| var1.name | X1 name in model, a string | 
| var2.name | X2 name in model, a string | 
| v | a customized variance-covariance matrix data(mtcars) m1 <- lm(mpg ~ vs + carb + hp + wt + wt * hp , data = mtcars) summary(m1) test_coef_equality(model = m1, var1.name = "carb", var2.name = "hp") | 
significance of regression slope (the marginal effect) under moderation testing restriction: the sig. of beta_x under the moderation of z1, with or without additional interaction terms (z2, z3, etc.)
Description
significance of regression slope (the marginal effect) under moderation testing restriction: the sig. of beta_x under the moderation of z1, with or without additional interaction terms (z2, z3, etc.)
Usage
test_tilted_slopes(
  reg.coef,
  v = NULL,
  model,
  x_var.name,
  moderator.name,
  mod.n.sd = 1,
  data,
  t.value.col = 3,
  Pr.col = 4
)
Arguments
| reg.coef | a data.frame (or matrix) of regression result or a coeftest object, e.g. summary(lm_model)$coef, coeftest(lm_model, cluster.vcov(lm_model, cbind(data$group1, data$group2))) | 
| v | a customized variance-covariance matrix | 
| model | the model object, such as a "lm" object | 
| x_var.name | main independent variable name in model, a string | 
| moderator.name | moderator name in model, a string | 
| mod.n.sd | specify the strength of the moderating effects, in the unit of s.d.s of the moderator, which can take negative values | 
| data | data used for regression | 
| t.value.col | col number of the t-score in reg.coef | 
| Pr.col | col number of the Prob.(>|t|)) in reg.coef | 
Examples
data(mtcars)
m1 <- lm(mpg ~ vs + carb + hp + wt + wt * hp , data = mtcars)
test_tilted_slopes(reg.coef = summary(m1)$coef, model = m1, 
                   x_var.name = "wt", moderator.name = "hp", data = mtcars)
Convert the regression result to the long format: the standard errors are in parentheses and beneath the betas
Description
Convert the regression result to the long format: the standard errors are in parentheses and beneath the betas
Usage
to_long_tab(reg.coef, d = 3, t.value.col = 3, Pr.col = 4)
Arguments
| reg.coef | a data.frame (or matrix) of regression result or a coeftest object, e.g. summary(lm_model)$coef, coeftest(lm_model, cluster.vcov(lm_model, cbind(data$group1, data$group2))) | 
| d | number of decimal places to retain | 
| t.value.col | col number of the t-score in the reg.coef data.frame | 
| Pr.col | col number of the Prob.(>|t|)) in the reg.coef data.frame | 
Examples
data(mtcars)
m1 <- lm(mpg ~ vs + carb + hp + wt + wt * hp , data = mtcars)
to_long_tab(reg.coef = summary(m1)$coef)