deparse(model$call) results in a vector of length greater than 1) would break the functionality of listwise_delete()generate_models() to look clean and comprehensible in Jupyter Notebooks.pairwise() so that the plot matches the table.pairwise() would not recognize categorical variables if they were created by using factor() in the formula, e.g. pairwise(lm(mpg ~ factor(cyl), data = mtcars)).supernova() output was interpreted as a table.estimate-extraction functions to coursekata.supernova-vctrs from exportslintr causing R CMD CHECK to failFingers$Interest to “Very Interested”pillar is available (thanks @cedricbatailler)There are four new pairwise comparisons functions:
pairwise()pairwise_t()pairwise_bonferroni()pairwise_tukey()Each of these determines all the pairwise comparisons that can be made for a model (fit by lm()) and then computes the comparisons. For pairwise_t() no correction is made for multiple comparisons, but for the others, the named correction is made. These corrections can also be specified as arguments to the pairwise() wrapper function. Each function produces output that has customized printing, supports most (if not all) normal data frame actions, and a plotting function that graphs the mean differences and their confidence intervals.
lme4 is moved to Suggests. Models implementing lmerMod are handled via supernova.lmerMod and variables.lmerMod but use of the lme4 package is limited to tests.variables() using the new formula utility functions added. See ?formula_building, ?formula_expansion, and ?formula_extraction.equation() to extract the fitted equation from a linear model (lm()) (thanks for the suggestion from [@ave-63](https://github.com/ave-63)!)dplyr because it changes too quickly and has too many other dependencieslme4Extend supernova to handle within (crossed) designs
lme4 and dplyr to Importssupernova to S3 class with methods for lm and lmerModsupernova() for crossed (but not nested) lmer() fitsprint.supernova to handle new modelsMinor changes:
Added a NEWS.md file to track changes to the package.
Created and added a logo to the package. (#21, @adamblake)
Added the ability to change the type of sums of squares to calculate when computing the ANOVA tables. Users can choose from 1/I/sequential, 2/II/hierarchical, 3/III/orthogonal. (#22, @adamblake)
Added pedagogical function generate_models() for showing which models are being compared when evaluating terms in a model. This function also supports specification of the type of sums of squares to use. (#22, @adamblake)
Updated the README to be generated from an Rmd file and to include information and examples regarding how to calculate different SS types and how to use generate_models()
Added a data frame identical to Servers named Tables. This is a more appropriate name for the dataset because each row describes what happened at a table in the restaurant.
Added support for multiple regression using Type III sums of squares
Updated README for more information, examples, and a description of how the calculation of the ANOVA tables follows the model comparison approach used in Judd, McClelland, & Ryan (2017).
This version of supernova is the original distributed on CRAN. Calculation of supernova() tables with multiple predictor variables in this version will not produce output similar to the reference text, Judd, McClelland, and Ryan. However, the values for single predictor models are correct.