Open IndrajeetPatil opened 3 years ago
Do we just want to not support table_wide
in these cases?
In the tidyverse
version of the function I had posted here, it worked.
library(magrittr)
pretty_aov <- function(x) {
df <- parameters::model_parameters(x, eta_squared = "partial")
if (class(x)[[1]] %in% c("aov", "aovlist", "anova", "Gam", "manova", "maov")) {
# creating numerator and denominator degrees of freedom
if (dim(dplyr::filter(df, Parameter == "Residuals"))[[1]] > 0L) {
df$df_error <- df$df[nrow(df)]
df$Sum_Squares_Error <- df$Sum_Squares[nrow(df)]
}
}
# final cleanup
dplyr::filter(df, !is.na(p)) %>%
dplyr::select(Parameter, Sum_Squares, Sum_Squares_Error, df, df_error, dplyr::everything())
}
set.seed(123)
mod1 <- aov(yield ~ N * P * K + Error(block), npk)
pretty_aov(mod1)
#> # block
#>
#> Parameter | Sum_Squares | Sum_Squares_Error | df | df (error) | Mean_Square | F | p | Eta2 (partial)
#> -----------------------------------------------------------------------------------------------------------
#> N:P:K | 37.00 | 185.29 | 1 | 12 | 37.00 | 0.48 | 0.525 | 0.11
#>
#> # Within
#>
#> Parameter | Sum_Squares | Sum_Squares_Error | df | df (error) | Mean_Square | F | p | Eta2 (partial)
#> ------------------------------------------------------------------------------------------------------------
#> N | 189.28 | 185.29 | 1 | 12 | 189.28 | 12.26 | 0.004 | 0.51
#> P | 8.40 | 185.29 | 1 | 12 | 8.40 | 0.54 | 0.475 | 0.04
#> K | 95.20 | 185.29 | 1 | 12 | 95.20 | 6.17 | 0.029 | 0.34
#> N:P | 21.28 | 185.29 | 1 | 12 | 21.28 | 1.38 | 0.263 | 0.10
#> N:K | 33.14 | 185.29 | 1 | 12 | 33.14 | 2.15 | 0.169 | 0.15
#> P:K | 0.48 | 185.29 | 1 | 12 | 0.48 | 0.03 | 0.863 | 2.59e-03
Created on 2021-08-11 by the reprex package (v2.0.1)
But it doesn't seem to work with the base-R version. We just need to figure out a way to make it work also in the base-R solution.
simple error structure
more complex error structure
Created on 2021-07-16 by the reprex package (v2.0.0)